結果
問題 | No.2352 Sharpened Knife in Fall |
ユーザー |
|
提出日時 | 2023-07-05 14:42:33 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 226 ms / 3,000 ms |
コード長 | 1,710 bytes |
コンパイル時間 | 984 ms |
コンパイル使用メモリ | 101,788 KB |
最終ジャッジ日時 | 2025-02-15 06:14:00 |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
#include<iostream>#include<set>#include<algorithm>#include<vector>#include<string>#include<set>#include<map>#include<numeric>#include<queue>#include<cmath>using namespace std;typedef long long ll;const ll INF=1LL<<60;typedef pair<ll,ll> P;typedef pair<int,P> PP;const ll MOD=998244353;const double PI=acos(-1);double area(double r,double y){double theta=acos(y/r);return r*r*theta - y*sqrt(r*r-y*y);}int main(){int R,K;cin>>R>>K;int halfK=K/2;vector<double> ans;double upperb=R;for(int k=1;k<=halfK;k++){//double ub=upperb;double ub=R;double lb=0;double Sk=1.0*PI*R*R*k/(K+1);for(int x=0;x<100;x++){double mid=(ub+lb)/2;//cout<<"k="<<k<<endl;//cout<<"ub="<<ub<<endl;//cout<<"lb="<<lb<<endl;if(area(R,mid)<=Sk){ub=mid;}else{lb=mid;}}//cout<<"ub="<<ub<<endl;ans.push_back(ub);//upperb=ub;}/*sort(ans.begin(),ans.end());//絶対値が小さい順reverse(ans.begin(),ans.end());//絶対値が大きい*/int n=ans.size();if(K%2==1){for(int k=0;k<n;k++){printf("%.13f\n",-ans[k]);}//printf("%.13f\n",0.0);cout<<0<<endl;for(int k=n-1;k>=0;k--){printf("%.13f\n",ans[k]);}}else{for(int k=0;k<n;k++){printf("%.13f\n",-ans[k]);}for(int k=n-1;k>=0;k--){printf("%.13f\n",ans[k]);}}}