結果
問題 |
No.1185 完全な3の倍数
|
ユーザー |
![]() |
提出日時 | 2020-08-22 13:08:32 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 18 ms / 2,000 ms |
コード長 | 1,063 bytes |
コンパイル時間 | 693 ms |
コンパイル使用メモリ | 68,984 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-24 09:03:32 |
合計ジャッジ時間 | 2,000 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 39 |
ソースコード
#include <string> #include <vector> #include <iostream> using namespace std; int main() { int N; cin >> N; if (N <= 99) { int cnt = 0; for (int i = 10; i <= N; ++i) { string str = to_string(i); bool ok = true; for (int j = 0; j < str.size(); ++j) { for (int k = 0; k < j; ++k) { if ((str[j] + str[k]) % 3 != 0) { ok = false; } } } if (ok) ++cnt; } cout << cnt << endl; } else { int cnt = 0; for (int i = 10; i <= 99; ++i) { string str = to_string(i); bool ok = true; for (int j = 0; j < str.size(); ++j) { for (int k = 0; k < j; ++k) { if ((str[j] + str[k]) % 3 != 0) { ok = false; } } } if (ok) ++cnt; } for (int i = 3; i <= 9; ++i) { int mul = 1; for (int j = 0; j < i; ++j) { mul *= 4; } for (int j = 0; j < mul; ++j) { string str; int x = j; for (int k = 0; k < i; ++k) { str += char((x % 4) * 3 + '0'); x /= 4; } if (str[0] != '0' && stoi(str) <= N) { ++cnt; } } } cout << cnt << endl; } return 0; }