結果
問題 | No.381 名声値を稼ごう Extra |
ユーザー | htensai |
提出日時 | 2019-11-20 14:48:02 |
言語 | Java21 (openjdk 21) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,005 bytes |
コンパイル時間 | 2,213 ms |
コンパイル使用メモリ | 77,736 KB |
実行使用メモリ | 69,852 KB |
最終ジャッジ日時 | 2024-10-06 12:21:24 |
合計ジャッジ時間 | 12,046 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 129 ms
54,220 KB |
testcase_01 | TLE | - |
ソースコード
import java.util.*; public class Main { static final int MOD = 1004535809; public static void main (String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); int length = (str.length() + 8) / 9; long[] arr = new long[length]; for (int i = 0; i < length; i++) { if (i == length - 1) { arr[length - i - 1] = Integer.parseInt(str.substring(0, str.length() - i * 9)); } else { arr[length - i - 1] = Integer.parseInt(str.substring(str.length() - (i + 1) * 9, str.length() - i * 9)); } } int start = 0; long mod = 0; long base = (long)(Math.pow(2, 30)); while (start < length) { long next = 0; for (int i = start; i < length; i++) { arr[i] += next * 1000000000; next = arr[i] % base; arr[i] /= base; if (start == i && arr[i] == 0) { start++; } } mod += Integer.bitCount((int)next); mod %= MOD; } System.out.println(mod); } }