|
|
back to boardWhy WA on test #4 Posted by nikhil 22 Jun 2020 17:33 #include <bits/stdc++.h> #define gif(a,b) ((a)/(b)+((a)%(b)?1:0)) #define float long double #define int long long //#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define w(x) cout<<(#x)<<" is "<<(x)<<"\n"; using namespace std; int32_t main() { //IOS float a, r; cin >> a >> r; float theta = acos(a/(2*r));
float s = sin(theta);
float pi = acos(-1); if(a/2 > r) printf("%0.3Lf",pi*r*r); else if(r > a/pow(2, 0.5)) cout << a*a; else cout << (pi*r*r) - 4*(r*r*theta - a*r*s/2) ; return 0; } Re: Why WA on test #4 Posted by FATNOT 22 Jun 2020 19:29 Проблема с точностью. исправьте "cout << (pi*r*r) - 4*(r*r*theta - a*r*s/2) ;" на "cout << fixed << setprecision(3) << (pi*r*r) - 4*(r*r*theta - a*r*s/2) ;". UPD: Попрошу не выкладывать свой код на форуме, он создан для обсуждения, а не для выкладывания на нем готовых решений. Поэтому прошу его убрать. Edited by author 22.06.2020 19:34 |
|
|