結果

問題 No.491 10^9+1と回文
ユーザー olpheolphe
提出日時 2017-03-10 23:00:34
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 13 ms / 1,000 ms
コード長 2,255 bytes
コンパイル時間 1,035 ms
コンパイル使用メモリ 112,992 KB
実行使用メモリ 9,856 KB
最終ジャッジ日時 2024-10-01 07:10:14
合計ジャッジ時間 4,265 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 103
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function 'int main()':
main.cpp:90:65: warning: iteration 2 invokes undefined behavior [-Waggressive-loop-optimizations]
   90 |                                                 num.push_back(i * 1000000001 + j * 100000010 + k * 10000100 + l * 1001000 + m * 110000);
      |                                                               ~~^~~~~~~~~~~~
main.cpp:85:27: note: within this loop
   85 |         for (int i = 1; i < 10; i++) {
      |                         ~~^~~~

ソースコード

diff #

#include "iostream"
#include "climits"
#include "list"
#include "queue"
#include "stack"
#include "set"
#include "functional"
#include "algorithm"
#include "math.h"
#include "utility"
#include "string"
#include "map"
#include "unordered_map"
#include "iomanip"
#include "random"

using namespace std;
const long long int MOD = 1000000007;

long long int N;
string a;
string b;
int ans=0;
int box;
list <long long int>num;

int main() {
	cin >> N;
	N /= 1000000001;
	for (int i = 1; i < 10; i++)num.push_back(i);
	for (int i = 1; i < 10; i++)num.push_back(i * 11);
	for (int i = 1; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			num.push_back(i * 100 + j * 10 + i);
		}
	}
	for (int i = 1; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			num.push_back(i * 1000 + j * 110 + i);
		}
	}
	for (int i = 1; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			for (int k = 0; k < 10; k++) {
				num.push_back(i * 10001 + j * 1010 + k * 100);
			}
		}
	}
	for (int i = 1; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			for (int k = 0; k < 10; k++) {
				num.push_back(i * 100001 + j * 10010 + k * 1100);
			}
		}
	}
	for (int i = 1; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			for (int k = 0; k < 10; k++) {
				for (int l = 0; l < 10; l++) {
					num.push_back(i * 1000001 + j * 100010 + k * 10100 + l * 1000);
				}
			}
		}
	}
	for (int i = 1; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			for (int k = 0; k < 10; k++) {
				for (int l = 0; l < 10; l++) {
					num.push_back(i * 10000001 + j * 1000010 + k * 100100 + l * 11000);
				}
			}
		}
	}
	for (int i = 1; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			for (int k = 0; k < 10; k++) {
				for (int l = 0; l < 10; l++) {
					for (int m = 0; m < 10; m++) {
						num.push_back(i * 100000001 + j * 10000010 + k * 1000100 + l * 101000 + m * 10000);
					}
				}
			}
		}
	}
	for (int i = 1; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			for (int k = 0; k < 10; k++) {
				for (int l = 0; l < 10; l++) {
					for (int m = 0; m < 10; m++) {
						num.push_back(i * 1000000001 + j * 100000010 + k * 10000100 + l * 1001000 + m * 110000);
					}
				}
			}
		}
	}
	for (auto i : num) {
		if (i <= N)ans++;
		else break;
		//cout << i << endl;
	}
	cout << ans << endl;
	return 0;
}
0