Submission #1965632
Source Code Expand
import java.io.*; import java.util.*; import java.math.*; // import java.awt.Point; public class Main { InputStream is; PrintWriter out; String INPUT = ""; long MOD = 1_000_000_007; int inf = Integer.MAX_VALUE/2; void solve(){ long a = nl(); long b = nl(); long ans1 = f(a-1); long ans2 = f(b); out.println(ans1-ans2+b-a+1); } long f(long k){ String s = String.valueOf(k); char[] a = s.toCharArray(); int n = a.length; int[] r = new int[n]; for(int i = 0; i < n; i++){ r[i] = a[i] - '0'; } long[][] dp = new long[n][2]; int[] t = new int[]{0,1,2,3,4,4,5,6,7,8}; dp[0][0] = t[r[0]]; dp[0][1] = (r[0]==4||r[0]==9 ? 0 : 1); for(int i = 1 ; i < n; i++){ dp[i][0] = dp[i-1][0]*8 + dp[i-1][1] * t[r[i]]; dp[i][1] = dp[i-1][1]*(r[i]==4||r[i]==9 ? 0 : 1); } return dp[n-1][0] + dp[n-1][1]; } void run() throws Exception { is = INPUT.isEmpty() ? System.in : new ByteArrayInputStream(INPUT.getBytes()); out = new PrintWriter(System.out); long s = System.currentTimeMillis(); solve(); out.flush(); if(!INPUT.isEmpty())tr(System.currentTimeMillis()-s+"ms"); } public static void main(String[] args) throws Exception { new Main().run(); } private byte[] inbuf = new byte[1024]; private int lenbuf = 0, ptrbuf = 0; private int readByte() { if(lenbuf == -1)throw new InputMismatchException(); if(ptrbuf >= lenbuf){ ptrbuf = 0; try { lenbuf = is.read(inbuf); } catch (IOException e) { throw new InputMismatchException(); } if(lenbuf <= 0)return -1; } return inbuf[ptrbuf++]; } private boolean isSpaceChar(int c) { return !(c >= 33 && c <= 126); } private int skip() { int b; while((b = readByte()) != -1 && isSpaceChar(b)); return b; } private double nd() { return Double.parseDouble(ns()); } private char nc() { return (char)skip(); } private String ns() { int b = skip(); StringBuilder sb = new StringBuilder(); while(!(isSpaceChar(b) && b != ' ')){ sb.appendCodePoint(b); b = readByte(); } return sb.toString(); } private char[] ns(int n) { char[] buf = new char[n]; int b = skip(), p = 0; while(p < n && !(isSpaceChar(b))){ buf[p++] = (char)b; b = readByte(); } return n == p ? buf : Arrays.copyOf(buf, p); } private char[][] nm(int n, int m) { char[][] map = new char[n][]; for(int i = 0;i < n;i++)map[i] = ns(m); return map; } private int[] na(int n) { int[] a = new int[n]; for(int i = 0;i < n;i++)a[i] = ni(); return a; } private int ni() { int num = 0, b; boolean minus = false; while((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-')); if(b == '-'){ minus = true; b = readByte(); } while(true){ if(b >= '0' && b <= '9'){ num = num * 10 + (b - '0'); }else{ return minus ? -num : num; } b = readByte(); } } private long nl() { long num = 0; int b; boolean minus = false; while((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-')); if(b == '-'){ minus = true; b = readByte(); } while(true){ if(b >= '0' && b <= '9'){ num = num * 10 + (b - '0'); }else{ return minus ? -num : num; } b = readByte(); } } private static void tr(Object... o) { System.out.println(Arrays.deepToString(o)); } }
Submission Info
Submission Time | |
---|---|
Task | D - 禁止された数字 |
User | yuya178 |
Language | Java8 (OpenJDK 1.8.0) |
Score | 100 |
Code Size | 4203 Byte |
Status | AC |
Exec Time | 73 ms |
Memory | 22740 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 30 / 30 | 70 / 70 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask0_sample04.txt |
Subtask1 | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt |
Subtask2 | subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask0_sample04.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask0_sample01.txt | AC | 71 ms | 20308 KB |
subtask0_sample02.txt | AC | 70 ms | 19028 KB |
subtask0_sample03.txt | AC | 69 ms | 19540 KB |
subtask0_sample04.txt | AC | 70 ms | 21204 KB |
subtask1_01.txt | AC | 70 ms | 21332 KB |
subtask1_02.txt | AC | 71 ms | 18260 KB |
subtask1_03.txt | AC | 72 ms | 20944 KB |
subtask1_04.txt | AC | 71 ms | 19284 KB |
subtask1_05.txt | AC | 72 ms | 20948 KB |
subtask1_06.txt | AC | 69 ms | 18516 KB |
subtask1_07.txt | AC | 70 ms | 19284 KB |
subtask1_08.txt | AC | 69 ms | 17492 KB |
subtask1_09.txt | AC | 72 ms | 22740 KB |
subtask1_10.txt | AC | 69 ms | 18516 KB |
subtask1_11.txt | AC | 69 ms | 17748 KB |
subtask1_12.txt | AC | 71 ms | 21332 KB |
subtask1_13.txt | AC | 70 ms | 19028 KB |
subtask2_01.txt | AC | 70 ms | 21204 KB |
subtask2_02.txt | AC | 71 ms | 19156 KB |
subtask2_03.txt | AC | 71 ms | 20820 KB |
subtask2_04.txt | AC | 70 ms | 18260 KB |
subtask2_05.txt | AC | 71 ms | 20052 KB |
subtask2_06.txt | AC | 70 ms | 17620 KB |
subtask2_07.txt | AC | 70 ms | 17748 KB |
subtask2_08.txt | AC | 69 ms | 17748 KB |
subtask2_09.txt | AC | 70 ms | 19668 KB |
subtask2_10.txt | AC | 70 ms | 21204 KB |
subtask2_11.txt | AC | 71 ms | 21204 KB |
subtask2_12.txt | AC | 70 ms | 17364 KB |
subtask2_13.txt | AC | 70 ms | 18644 KB |
subtask2_14.txt | AC | 70 ms | 19540 KB |
subtask2_15.txt | AC | 70 ms | 17108 KB |
subtask2_16.txt | AC | 69 ms | 21332 KB |
subtask2_17.txt | AC | 72 ms | 20052 KB |
subtask2_18.txt | AC | 72 ms | 20436 KB |
subtask2_19.txt | AC | 71 ms | 19156 KB |
subtask2_20.txt | AC | 73 ms | 20820 KB |
subtask2_21.txt | AC | 71 ms | 18644 KB |
subtask2_22.txt | AC | 71 ms | 22356 KB |