結果
問題 | No.1286 Stone Skipping |
ユーザー | bluemegane |
提出日時 | 2020-11-14 16:13:15 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 26 ms / 2,000 ms |
コード長 | 1,001 bytes |
コンパイル時間 | 853 ms |
コンパイル使用メモリ | 113,200 KB |
実行使用メモリ | 25,940 KB |
最終ジャッジ日時 | 2024-07-23 09:57:55 |
合計ジャッジ時間 | 2,452 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 26 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using static System.Math; using System; public class Hello { static void Main() { var n = long.Parse(Console.ReadLine().Trim()); getAns(n); } static void getAns (long n) { var ans = long.MaxValue; for (int k = 0; k < 65; k++) { var w = BS(n, k); if (w != -1) ans = Min(ans, w); } Console.WriteLine(ans == long.MaxValue? n:ans); } static long BS (long targ, int k) { var ng = 1L; var ok = targ; while (ok - ng > 1) { var mid = ng + (ok - ng) / 2; var w = calc(mid, k); if (w == targ) return mid; else if (w > targ) ok = mid; else ng = mid; } return -1; } static long calc (long n , int k) { var res = n; var p = 1; while (p < k && n >0) { n /= 2; res += n; p++; } return res; } }