結果
問題 | No.2352 Sharpened Knife in Fall |
ユーザー |
👑 ![]() |
提出日時 | 2023-03-26 11:42:25 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 322 ms / 3,000 ms |
コード長 | 1,144 bytes |
コンパイル時間 | 834 ms |
コンパイル使用メモリ | 96,728 KB |
最終ジャッジ日時 | 2025-02-11 18:13:45 |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
#include <iostream>#include <vector>#include <cmath>#include <iomanip>using namespace std;double area(double center, double r){double theta = acos(center / r);double sector = r * r * theta;double triangle = center * sqrt(r * r - center * center);return sector - triangle;}int main(){int R,K;cin >> R >> K;double PI = acos(-1);double dr = (double)R;double S = dr * dr * PI;vector<double> ans(0);for (int i = 0; i < K / 2; i++){double portion_s = S * (double)(i + 1) / (double)(K + 1);double ok = 0;double ng = dr;for (int j = 0; j < 100; j++){double center = (ok + ng) / 2;if (area(center, dr) >= portion_s){ok = center;}else{ng = center;}}ans.push_back(ok);}int len = ans.size();for (int i = 0; i < len; i++){cout << setprecision(13) << ans[i] * -1 << endl;}if (K % 2 == 1) cout << 0 << endl;for (int i = len - 1; i >= 0; i--){cout << setprecision(13) << ans[i] << endl;}}