6 条题解
-
0
我们不能懒惰,不能贪心于使用内置函数
template <class _Tp = const unsigned long long int> class P { _Tp *p { nullptr }; }; signed WinMain(int argv, char argc[]) {} #pragma GCC system_header #include <cstdio> #include <ctype.h> typedef unsigned long long ULL; int read() { char ch; int res = 0; while (!isdigit(ch = getchar())); res = ch ^ 48; while (isdigit(ch = getchar())) res = res * 10 + (ch ^ 48); return res; } int add(int a, int b) { if (!a) return b; return add((a & b) << 1, a ^ b); } ULL quick_mul(int a, int b) { ULL res = 0; for (ULL t = a; b; b >>= 1, t <<= 1) if (b & 1) res = res + t; return res; } ULL square(int a) { return quick_mul(a, a); } void swap(int *a, int *b) { *a ^= *b ^= *a ^= *b; } void sort(int *a, int *b) { if (*a > *b) swap(a, b); } void sort(int *a, int *b, int *c) { sort(a, b); sort(b, c); sort(a, b); } int is_rt_tri(int a, int b, int c) { return square(a) + square(b) == square(c); } int area_integer_part(int a, int b, int c) { return quick_mul(a, b) >> 1; } int area_decimal_part(int a, int b, int c) { return quick_mul(5, quick_mul(a, b) & 1); } void print(int a) { if (!a) return; print(a / 10); putchar(a % 10 ^ 48); } void print_area(int a, int b, int c) { print(area_integer_part(a, b, c)); int decimal = area_decimal_part(a, b, c); if (decimal) putchar('.'), print(decimal); } void global_print(int a, int b, int c) { if (!is_rt_tri(a, b, c)) { puts("no"); } else { print_area(a, b, c); } } signed main(int argv, char argc[]) { int a, b, c; a = read(); b = read(); c = read(); sort(&a, &b, &c); global_print(a, b, c); return 0; }
信息
- ID
- 26
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- (无)
- 递交数
- 53
- 已通过
- 42
- 上传者