結果
問題 | No.491 10^9+1と回文 |
ユーザー |
![]() |
提出日時 | 2017-03-10 23:47:42 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 98 ms / 1,000 ms |
コード長 | 934 bytes |
コンパイル時間 | 1,283 ms |
コンパイル使用メモリ | 162,728 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-01 08:21:33 |
合計ジャッジ時間 | 12,899 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 103 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define int long long #define Rep(i, N) for(int i = 0; i < N; i++) #define Reps(i, x, N) for(int i = x; i < N; i++) string to_str(int n) { ostringstream os; os << n; return os.str(); } signed main() { int N; cin >> N; int ans = 0; Reps(i, 1, 100000) { string T = to_str(i), R = T; string S, F; reverse(R.begin(), R.end()); if(i < 10000) { S = T + R; int ssize = (int)S.size(); Rep(j, 9 - ssize) S += '0'; S += T + R; } else S = "1000000000000000001"; T = to_str(i / 10); F = T + R; int fsize = (int)F.size(); Rep(j, 9 - fsize) F += '0'; F += T + R; //cout << S << " " << F << endl; int A, B; sscanf(S.c_str(), "%lld", &A); sscanf(F.c_str(), "%lld", &B); //cout << A << " " << B << endl; if(N >= A) ans++; if(N >= B) ans++; } cout << ans << endl; return 0; }