結果

問題 No.491 10^9+1と回文
ユーザー GrenacheGrenache
提出日時 2017-03-10 23:26:26
言語 Java
(openjdk 23)
結果
WA  
実行時間 -
コード長 1,510 bytes
コンパイル時間 4,504 ms
コンパイル使用メモリ 78,600 KB
実行使用メモリ 59,052 KB
最終ジャッジ日時 2024-06-24 08:47:24
合計ジャッジ時間 29,120 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 85 WA * 18
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.io.*;
import java.util.*;


public class Main_yukicoder491 {

	private static Scanner sc;
	private static Printer pr;

	private static void solve() {
		long n = sc.nextLong();

		long t = 1_000_000_001;

		int ret = 0;
		for (int i = 1; i < 100000; i++) {
			if (i % 10 == 0) {
				continue;
			}

			StringBuilder tmp = new StringBuilder();
			tmp.append(i);
			if (t * i <= n) {
				if (isPalindrome(tmp)) {
					ret++;
				}
			}

			while (tmp.length() < 5) {
				tmp.insert(0, '0');
				int m = tmp.length();
				if (m * 2 < 6) {
					continue;
				}

				StringBuilder tmp2 = new StringBuilder();
				for (int j = 0; j < m; j++) {
					tmp2.append(tmp.charAt(m - 1 - j));
				}
				if (m == 5) {
					tmp2.deleteCharAt(m - 1);
				}
				for (int j = 0; j < m; j++) {
					tmp2.append(tmp.charAt(j));
				}

				long ltmp = Long.parseLong(tmp2.toString());
				if (t * ltmp <= n) {
					ret++;
				}
			}
		}

		pr.println(ret);
	}

	private static boolean isPalindrome(StringBuilder str) {
		int n = str.length();

		boolean flag = true;
		for (int i = 0; i < n / 2; i++) {
			if (str.charAt(i) != str.charAt(n - 1 - i)) {
				flag = false;
				break;
			}
		}

		return flag;
	}

	// ---------------------------------------------------
	public static void main(String[] args) {
		sc = new Scanner(System.in);
		pr = new Printer(System.out);

		solve();

		pr.close();
		sc.close();
	}

	private static class Printer extends PrintWriter {
		Printer(PrintStream out) {
			super(out);
		}
	}
}
0