結果
問題 | No.220 世界のなんとか2 |
ユーザー |
![]() |
提出日時 | 2015-06-22 19:01:07 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 1,015 bytes |
コンパイル時間 | 533 ms |
コンパイル使用メモリ | 60,420 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-07 16:39:01 |
合計ジャッジ時間 | 1,173 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 |
ソースコード
#include <iostream> #include <math.h> using namespace std; int main(void){ unsigned long long p; cin >> p; unsigned long long result1 = 0; unsigned long long result2 = 0; unsigned long long result3 = 0; // 3の倍数 result1 = (unsigned long long)(powl(10, p) / 3); // 3の付く数 unsigned long long init = 1; for (int i = 1; i <= p; i++) { if (i == 1) { result2 = init; } else { result2 = init * 9 + powl(10, i - 1); init = result2; } } // 3の倍数かつ3の付く数 init = 1; for (int i = 1; i <= p; i++) { if (i == 1) { result3 = init; } else { result3 = init * 3 + (init - 1) * 6 + (unsigned long long)(powl(10, i - 1) / 3) + 1; init = result3; } } // 出力 unsigned long long result = result1 + result2 - result3; printf("%llu\n", result); return 0; }