結果
問題 | No.2352 Sharpened Knife in Fall |
ユーザー |
![]() |
提出日時 | 2023-06-16 21:47:46 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 735 ms / 3,000 ms |
コード長 | 1,866 bytes |
コンパイル時間 | 2,293 ms |
コンパイル使用メモリ | 77,488 KB |
実行使用メモリ | 60,932 KB |
最終ジャッジ日時 | 2024-06-24 13:42:26 |
合計ジャッジ時間 | 18,851 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
import java.io.PrintWriter;import java.util.Scanner;public class Main {public static void main(String[] args) throws Exception {Scanner sc = new Scanner(System.in);int r = sc.nextInt();int k = sc.nextInt();sc.close();double p2 = Math.PI * 2;double t = Math.PI * r * r;if (k % 2 == 1) {int num = (k - 1) / 2;double[] ans = new double[num];double s1 = t / (k + 1) / 2;double sum = 0;for (int i = 0; i < num; i++) {double ok = Math.PI / 2;double ng = 0;for (int j = 0; j < 100; j++) {double mid = (ok + ng) / 2;double x = r * Math.cos(mid);double y = r * Math.sin(mid);double v1 = x * y / 2;double v2 = t * mid / p2;if (v1 + v2 - sum >= s1) {ok = mid;} else {ng = mid;}}ans[i] = r * Math.sin(ok);sum += s1;}PrintWriter pw = new PrintWriter(System.out);for (int i = num - 1; i >= 0; i--) {pw.println(-ans[i]);}pw.println(0);for (int i = 0; i < num; i++) {pw.println(ans[i]);}pw.flush();} else {int num = k / 2;double[] ans = new double[num];double s1 = t / (k + 1) / 2;double s2 = s1 / 2;double sum = 0;for (int i = 0; i < num; i++) {double g = i == 0 ? s2 : s1;double ok = Math.PI / 2;double ng = 0;for (int j = 0; j < 100; j++) {double mid = (ok + ng) / 2;double x = r * Math.cos(mid);double y = r * Math.sin(mid);double v1 = x * y / 2;double v2 = t * mid / p2;if (v1 + v2 - sum >= g) {ok = mid;} else {ng = mid;}}ans[i] = r * Math.sin(ok);sum += g;}PrintWriter pw = new PrintWriter(System.out);for (int i = num - 1; i >= 0; i--) {pw.println(-ans[i]);}for (int i = 0; i < num; i++) {pw.println(ans[i]);}pw.flush();}}}