Submission #163376


Source Code Expand

#include <iostream>
#include <vector>
#include <algorithm>
 
#define loop(n, i) for(int i=0;i<n;i++)
#define loop_from_to(from, to, i) for(int i=from;i<=to;i++)
#define repeat(n) for(int i__=0;i__<n;i__++)
#define multi_cin(n, array) loop(n,i){cin>>array[i];}
#define assign_if_smaller(var, val) if(var>val)var=val;
#define assign_if_larger(var, val) if(var<val)var=val;
#define each(itr, c) for(__typeof((c).begin()) itr=(c).begin(); itr!=(c).end(); itr++)
#define r_each(itr, c) for(__typeof((c).rbegin()) itr=(c).rbegin(); itr!=(c).rend(); itr++)

using namespace std;
typedef unsigned long long ull;

ull calc(ull n)
{
  ull dp[2][2];
  dp[0][0] = 1;
  dp[0][1] = 1;

  int digits = 1;
  ull n_ = n;
  while ((n_ /= 10) != 0) digits++;

  loop(digits, i)
  {
    dp[(i+1)%2][0] = 0;
    dp[(i+1)%2][1] = 0;

    ull tmp = n;
    repeat(i) tmp /= 10;
    int m = tmp % 10;

    loop(10, j)
    {
      if (j == 4 || j == 9) continue;
      dp[(i+1)%2][0] += dp[i%2][0];

      if (j <= m)
      {
        dp[(i+1)%2][1] += dp[i%2][j == m ? 1 : 0];
      }
    }
  }

  return n - (dp[digits%2][1] - 1);
}

int main(int argc, char const* argv[])
{
  ull a, b; cin >> a >> b;
  cout << calc(b) - calc(a-1) << endl;
  
  return 0;
}

Submission Info

Submission Time
Task D - 禁止された数字
User na_o_s
Language C++11 (GCC 4.8.1)
Score 100
Code Size 1290 Byte
Status AC
Exec Time 27 ms
Memory 916 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 24 ms 796 KB
subtask0_sample02.txt AC 22 ms 912 KB
subtask0_sample03.txt AC 23 ms 792 KB
subtask0_sample04.txt AC 24 ms 912 KB
subtask1_01.txt AC 22 ms 804 KB
subtask1_02.txt AC 24 ms 788 KB
subtask1_03.txt AC 24 ms 792 KB
subtask1_04.txt AC 21 ms 788 KB
subtask1_05.txt AC 23 ms 792 KB
subtask1_06.txt AC 25 ms 792 KB
subtask1_07.txt AC 23 ms 792 KB
subtask1_08.txt AC 22 ms 792 KB
subtask1_09.txt AC 21 ms 900 KB
subtask1_10.txt AC 27 ms 796 KB
subtask1_11.txt AC 27 ms 792 KB
subtask1_12.txt AC 22 ms 788 KB
subtask1_13.txt AC 25 ms 912 KB
subtask2_01.txt AC 24 ms 792 KB
subtask2_02.txt AC 26 ms 800 KB
subtask2_03.txt AC 25 ms 788 KB
subtask2_04.txt AC 23 ms 796 KB
subtask2_05.txt AC 25 ms 796 KB
subtask2_06.txt AC 24 ms 792 KB
subtask2_07.txt AC 22 ms 792 KB
subtask2_08.txt AC 23 ms 916 KB
subtask2_09.txt AC 20 ms 908 KB
subtask2_10.txt AC 25 ms 860 KB
subtask2_11.txt AC 21 ms 780 KB
subtask2_12.txt AC 23 ms 796 KB
subtask2_13.txt AC 25 ms 796 KB
subtask2_14.txt AC 21 ms 800 KB
subtask2_15.txt AC 22 ms 788 KB
subtask2_16.txt AC 25 ms 800 KB
subtask2_17.txt AC 23 ms 796 KB
subtask2_18.txt AC 23 ms 792 KB
subtask2_19.txt AC 20 ms 844 KB
subtask2_20.txt AC 22 ms 900 KB
subtask2_21.txt AC 23 ms 796 KB
subtask2_22.txt AC 23 ms 792 KB