結果
| 問題 | No.491 10^9+1と回文 |
| コンテスト | |
| ユーザー |
tinumukiti631
|
| 提出日時 | 2017-03-10 23:47:42 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0 + boost 1.89.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;
}
tinumukiti631