結果
| 問題 |
No.491 10^9+1と回文
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-03-10 23:37:41 |
| 言語 | Java (openjdk 23) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,513 bytes |
| コンパイル時間 | 4,014 ms |
| コンパイル使用メモリ | 78,484 KB |
| 実行使用メモリ | 64,744 KB |
| 最終ジャッジ日時 | 2024-06-24 09:00:12 |
| 合計ジャッジ時間 | 35,190 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 89 WA * 13 MLE * 1 |
ソースコード
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 < 100_000; 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) {
int m = tmp.length();
if (m * 2 >= 6) {
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++;
}
}
tmp.insert(0, '0');
}
}
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);
}
}
}