結果

問題 No.491 10^9+1と回文
ユーザー vjudge1
提出日時 2025-05-16 16:15:38
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 3,791 bytes
コンパイル時間 4,198 ms
コンパイル使用メモリ 287,476 KB
実行使用メモリ 7,848 KB
最終ジャッジ日時 2025-05-16 16:15:46
合計ジャッジ時間 8,009 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 93 WA * 10
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;
bool hw(ll x){
	string s=to_string(x);
	string t=s;
	reverse(t.begin(),t.end());
	return s==t;
}
int main(){
//	freopen("palindrome.in","r",stdin);
//	freopen("palindrome.out","w",stdout);
	cin>>n;
	n/=1000000001;
//	cout<<n<<endl;
	vector<tuple<ll,ll,ll>>vec(100);
	vec[0]={1999,0,999999},vec[1]={1000,1000000,1999999},vec[2]={1000,2000000,2999999},vec[3]={1000,3000000,3999999},vec[4]={1000,4000000,4999999},vec[5]={1000,5000000,5999999},vec[6]={1000,6000000,6999999},vec[7]={1000,7000000,7999999},vec[8]={1000,8000000,8999999},vec[9]={1000,9000000,9999999},vec[10]={100,10000000,10999999},vec[11]={100,11000000,11999999},vec[12]={100,12000000,12999999},vec[13]={100,13000000,13999999},vec[14]={100,14000000,14999999},vec[15]={100,15000000,15999999},vec[16]={100,16000000,16999999},vec[17]={100,17000000,17999999},vec[18]={100,18000000,18999999},vec[19]={100,19000000,19999999},vec[20]={100,20000000,20999999},vec[21]={100,21000000,21999999},vec[22]={100,22000000,22999999},vec[23]={100,23000000,23999999},vec[24]={100,24000000,24999999},vec[25]={100,25000000,25999999},vec[26]={100,26000000,26999999},vec[27]={100,27000000,27999999},vec[28]={100,28000000,28999999},vec[29]={100,29000000,29999999},vec[30]={100,30000000,30999999},vec[31]={100,31000000,31999999},vec[32]={100,32000000,32999999},vec[33]={100,33000000,33999999},vec[34]={100,34000000,34999999},vec[35]={100,35000000,35999999},vec[36]={100,36000000,36999999},vec[37]={100,37000000,37999999},vec[38]={100,38000000,38999999},vec[39]={100,39000000,39999999},vec[40]={100,40000000,40999999},vec[41]={100,41000000,41999999},vec[42]={100,42000000,42999999},vec[43]={100,43000000,43999999},vec[44]={100,44000000,44999999},vec[45]={100,45000000,45999999},vec[46]={100,46000000,46999999},vec[47]={100,47000000,47999999},vec[48]={100,48000000,48999999},vec[49]={100,49000000,49999999},vec[50]={100,50000000,50999999},vec[51]={100,51000000,51999999},vec[52]={100,52000000,52999999},vec[53]={100,53000000,53999999},vec[54]={100,54000000,54999999},vec[55]={100,55000000,55999999},vec[56]={100,56000000,56999999},vec[57]={100,57000000,57999999},vec[58]={100,58000000,58999999},vec[59]={100,59000000,59999999},vec[60]={100,60000000,60999999},vec[61]={100,61000000,61999999},vec[62]={100,62000000,62999999},vec[63]={100,63000000,63999999},vec[64]={100,64000000,64999999},vec[65]={100,65000000,65999999},vec[66]={100,66000000,66999999},vec[67]={100,67000000,67999999},vec[68]={100,68000000,68999999},vec[69]={100,69000000,69999999},vec[70]={100,70000000,70999999},vec[71]={100,71000000,71999999},vec[72]={100,72000000,72999999},vec[73]={100,73000000,73999999},vec[74]={100,74000000,74999999},vec[75]={100,75000000,75999999},vec[76]={100,76000000,76999999},vec[77]={100,77000000,77999999},vec[78]={100,78000000,78999999},vec[79]={100,79000000,79999999},vec[80]={100,80000000,80999999},vec[81]={100,81000000,81999999},vec[82]={100,82000000,82999999},vec[83]={100,83000000,83999999},vec[84]={100,84000000,84999999},vec[85]={100,85000000,85999999},vec[86]={100,86000000,86999999},vec[87]={100,87000000,87999999},vec[88]={100,88000000,88999999},vec[89]={100,89000000,89999999},vec[90]={100,90000000,90999999},vec[91]={100,91000000,91999999},vec[92]={100,92000000,92999999},vec[93]={100,93000000,93999999},vec[94]={100,94000000,94999999},vec[95]={100,95000000,95999999},vec[96]={100,96000000,96999999},vec[97]={100,97000000,97999999},vec[98]={100,98000000,98999999},vec[99]={100,99000000,99999999};
	ll st=0,ed=n/1000000,ans=0;
	for(ll i=st;i<ed;i++){
//		cout<<i<<" "<<st<<" "<<ed<<" "<<ans<<endl;
		ans+=get<0>(vec[i]);
	}
//	cout<<endl;
	for(ll i=ed*1000000;i<=n;i++){
		if(hw(i)){
//			cout<<i<<" ";
			ans++;	
		}
	}
//	cout<<endl;
	cout<<ans-1;
}
/*
11451419198100000
*/
0