Submission #504762


Source Code Expand

#include <bits/stdc++.h>

using namespace std;
typedef long long int ll;
typedef pair<int, int> P;
typedef pair<ll, ll> Pll;
typedef vector<int> Vi;
typedef tuple<int, int, int> T;
#define FOR(i,s,x) for(int i=s;i<(int)(x);i++)
#define REP(i,x) FOR(i,0,x)
#define ALL(c) c.begin(), c.end()
#define DUMP( x ) cerr << #x << " = " << ( x ) << endl

ll dp[20][10][2];

ll dpdp(string N) {
  const int L = N.size();

  memset(dp, 0, sizeof(dp));
  dp[0][0][0] = 1;
  REP(pos, L) {
    REP(d, 10) {
      if (d == 4 || d == 9) continue;
      REP(flag, 2) {
	if (!dp[pos][d][flag]) continue;
	if (flag == 1) {
	  REP(i, 10) {
	    if (i == 4 || i == 9) continue;
	    dp[pos+1][i][1] += dp[pos][d][1];
	  }
	} else {
	  REP(i, N[pos]-'0') {
	    if (i == 4 || i == 9) continue;
	    dp[pos+1][i][1] += dp[pos][d][0];
	  }
	  dp[pos+1][N[pos]-'0'][0] = dp[pos][d][0];
	}
      }
    }
  }
  ll ret = 0;
  REP(i, 10) REP(j, 2) {
    if (i == 4 || i == 9) continue;
    ret += dp[L][i][j];
  }
  return ret;
}

int main() {
  // use scanf in CodeForces!
  cin.tie(0);
  ios_base::sync_with_stdio(false);

  ll A, B;
  cin >> A >> B;

  cout << (B-A+1) - (dpdp(to_string(B)) - dpdp(to_string(A-1))) << endl;
  return 0;
}

Submission Info

Submission Time
Task D - 禁止された数字
User n_knuu
Language C++11 (GCC 4.8.1)
Score 100
Code Size 1271 Byte
Status AC
Exec Time 31 ms
Memory 1216 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 70 / 70
Status
AC × 4
AC × 16
AC × 39
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 29 ms 1120 KB
subtask0_sample02.txt AC 29 ms 1172 KB
subtask0_sample03.txt AC 29 ms 1176 KB
subtask0_sample04.txt AC 30 ms 1172 KB
subtask1_01.txt AC 29 ms 1080 KB
subtask1_02.txt AC 29 ms 1168 KB
subtask1_03.txt AC 28 ms 1164 KB
subtask1_04.txt AC 28 ms 1108 KB
subtask1_05.txt AC 28 ms 1072 KB
subtask1_06.txt AC 28 ms 1112 KB
subtask1_07.txt AC 26 ms 1060 KB
subtask1_08.txt AC 26 ms 1080 KB
subtask1_09.txt AC 27 ms 1172 KB
subtask1_10.txt AC 27 ms 1072 KB
subtask1_11.txt AC 27 ms 1124 KB
subtask1_12.txt AC 27 ms 1180 KB
subtask1_13.txt AC 27 ms 1172 KB
subtask2_01.txt AC 27 ms 1076 KB
subtask2_02.txt AC 28 ms 1076 KB
subtask2_03.txt AC 28 ms 1176 KB
subtask2_04.txt AC 28 ms 1176 KB
subtask2_05.txt AC 28 ms 1040 KB
subtask2_06.txt AC 28 ms 1172 KB
subtask2_07.txt AC 28 ms 1080 KB
subtask2_08.txt AC 28 ms 1072 KB
subtask2_09.txt AC 29 ms 1072 KB
subtask2_10.txt AC 29 ms 1068 KB
subtask2_11.txt AC 31 ms 1080 KB
subtask2_12.txt AC 26 ms 1076 KB
subtask2_13.txt AC 29 ms 1172 KB
subtask2_14.txt AC 29 ms 1172 KB
subtask2_15.txt AC 28 ms 1172 KB
subtask2_16.txt AC 27 ms 1216 KB
subtask2_17.txt AC 30 ms 1168 KB
subtask2_18.txt AC 28 ms 1172 KB
subtask2_19.txt AC 27 ms 1080 KB
subtask2_20.txt AC 27 ms 1176 KB
subtask2_21.txt AC 27 ms 1076 KB
subtask2_22.txt AC 26 ms 1072 KB