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; } -
0
#include<bits/stdc++.h> using namespace std; signed main(){ int a[4]; cin>>a[1]>>a[2]>>a[3]; sort(a+1,a+4); if(a[1]*a[1]+a[2]*a[2]!=a[3]*a[3])cout<<"no";//勾股定理 else cout<<a[1]*a[2]/2; } -
0
C++ :
#include<bits/stdc++.h> using namespace std; int main(){ int a,b,c; cin>>a>>b>>c; if(a*a+b*b==c*c) cout<<a*b/2; else if(a*a+c*c==b*b) cout<<a*c/2; else if(c*c+b*b==a*a) cout<<b*c/2; else cout<<"no"; return 0; }Python :
# coding=utf-8 x=int(input()) y=int(input()) z=int(input()) if x*x==z*z+y*y: print(round(z*y/2)) elif z*z==x*x+y*y: print(round(x*y/2)) elif y*y==x*x+z*z: print(round(x*z/2)) else: print("no")
- 1
信息
- ID
- 26
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- (无)
- 递交数
- 53
- 已通过
- 42
- 上传者