[关闭]
@994495jj 2017-08-07T01:41:31.000000Z 字数 1567 阅读 754

cfgym100002B

201708 (ACM)数学 (ACM)几何


  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<cmath>
  4. using namespace std;
  5. #define fi first
  6. #define se second
  7. #define pb push_back
  8. #define sz(a) (int)a.size()
  9. #define mp make_pair
  10. #define rep(i, a, b) for(int i=(a); i<(b); i++)
  11. #define de(a) cout<<#a<<"="<<a<<endl;
  12. typedef long long ll;
  13. //--------
  14. double A,B,X,Y;
  15. bool solve() {
  16. if(A>B) swap(A,B);
  17. if(X>Y) swap(X,Y);
  18. if(X<A&&Y<B) return 1;
  19. if(X*X+Y*Y>A*A+B*B) return 0;
  20. double t2=X*X+Y*Y;
  21. double a=(A-sqrt(t2-B*B))/2;
  22. double b=(B-sqrt(t2-A*A))/2;
  23. if(a*a+b*b>X*X) return 1;
  24. return 0;
  25. }
  26. int main() {
  27. while(~scanf("%lf%lf%lf%lf",&A,&B,&X,&Y)) {
  28. if(A<1||B<1||X<1||Y<1) break;
  29. if(solve()) puts("Escape is possible.");
  30. else puts("Box cannot be dropped.");
  31. }
  32. return 0;
  33. }
  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<cmath>
  4. using namespace std;
  5. #define fi first
  6. #define se second
  7. #define pb push_back
  8. #define sz(a) (int)a.size()
  9. #define mp make_pair
  10. #define rep(i, a, b) for(int i=(a); i<(b); i++)
  11. #define de(a) cout<<#a<<"="<<a<<endl;
  12. typedef long long ll;
  13. //--------
  14. bool check(double A,double B,double X,double Y) {
  15. if(A>B) swap(A,B);
  16. if(X>Y) swap(X,Y);
  17. if(X<=A&&Y<=B) return 1;
  18. if(X*X+Y*Y>=A*A+B*B) return 0;
  19. double t2=X*X+Y*Y;
  20. double a=(A-sqrt(t2-B*B))/2;
  21. double b=(B-sqrt(t2-A*A))/2;
  22. if(a*a+b*b>=X*X) return 1;
  23. return 0;
  24. }
  25. bool solve(double a,double b,double c,double d,double e) {
  26. if(check(d,e,a,b)) return 1;
  27. if(check(d,e,a,c)) return 1;
  28. if(check(d,e,b,c)) return 1;
  29. return 0;
  30. }
  31. int main() {
  32. freopen("bricks.in", "r", stdin);
  33. freopen("bricks.out", "w", stdout);
  34. double a,b,c,d,e;
  35. while(~scanf("%lf%lf%lf%lf%lf",&a,&b,&c,&d,&e)) {
  36. if(solve(a,b,c,d,e)) puts("YES");
  37. else puts("NO");
  38. }
  39. return 0;
  40. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注