結果
問題 | No.491 10^9+1と回文 |
ユーザー |
|
提出日時 | 2017-03-10 23:33:15 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 843 bytes |
コンパイル時間 | 543 ms |
コンパイル使用メモリ | 66,328 KB |
実行使用メモリ | 13,756 KB |
最終ジャッジ日時 | 2024-06-24 08:54:45 |
合計ジャッジ時間 | 7,767 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 92 WA * 2 TLE * 3 -- * 6 |
ソースコード
#include <iostream> #include <algorithm> using namespace std; const long long mod = 1e9; long long calc(long long a) { long long tmp = a; long long b = 0; while (tmp > 0) { b = b * 10 + tmp % 10; tmp /= 10; } b = b * mod + a; return b; } bool isPalindrome(long long a) { long long b = 0; long long tmp = a; while (tmp > 0) { b = b * 10 + tmp % 10; tmp /= 10; } return a == b; } int main() { long long n; cin >> n; int a = n / mod; int b = n % mod; if (b < a) { a--; } // printf("%d %d\n", a, b); int ans = 0; for (int i = 0; i <= a; i++) { if ( i % 10 == 0) { continue; } long long val = calc(i); if (val <= n && (val / mod == val % mod) && isPalindrome(val)) { // printf("%3d, %20lld\n", i, val); ans++; } if (val >= n * 10) { break; } } cout << ans << endl; return 0; }