結果

問題 No.378 名声値を稼ごう
ユーザー takeya_okino
提出日時 2017-06-19 21:59:15
言語 Java8
(openjdk 1.8.0.222)
結果
AC  
実行時間 111 ms
コード長 620 Byte
コンパイル時間 1,506 ms
使用メモリ 21,692 KB
最終ジャッジ日時 2019-11-18 20:23:17

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
input1 AC 111 ms
21,516 KB
input2 AC 110 ms
21,480 KB
input3 AC 109 ms
21,692 KB
input4 AC 108 ms
21,488 KB
sample AC 108 ms
21,488 KB
テストケース一括ダウンロード

ソースコード

diff #
import java.util.*;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    long N = sc.nextLong();
    long normal = 0;
    long score = N;
    for(int i = 0; i < 61; i++) {
      if(score > 0) {
        normal += score;
        score /= 2;
      } else {
        break;
      }
    }
    long skill = 0;
    for(int i = 0; i < 61; i++) {
      score = N;
      long a = 0;
      for(int j = 0; j < i; j++) {
        a += score;
        score /= 2;
      }
      a += (2 * score);
      skill = Math.max(skill, a);
    }
    System.out.println(skill - normal);
  }
}
0