Submission #1134363


Source Code Expand

#include <stdio.h>

const int mod = 1000000007;

long long int dp[2][100];
char n[10002];

int main(){
  int i, j, k, d, a, b;

  scanf("%d\n", &d);
  fgets(n, 10002, stdin);

  a = b = 0;
  for(i = 0; n[i]>='0'; i++, b^=1){
    int ni = n[i] - '0';
    for(k=0;k<d;k++){
      dp[b^1][k]=0;
      for(j=0; j<=9; j++){
        dp[b^1][k] += dp[b][(k-j+16*d)%d];
      }
      dp[b^1][k] %= mod;
    }
    for(j=0; j<ni; j++){
      dp[b^1][a]++;
      a++; if(a >= d) a -= d;
    }
  }
  printf("%lld\n", (dp[b][0] + mod - 1 + !a) % mod);
  return 0;
}

Submission Info

Submission Time
Task E - 数
User ryuhei
Language C (GCC 5.4.1)
Score 4
Code Size 582 Byte
Status AC
Exec Time 31 ms
Memory 128 KB

Compile Error

./Main.c: In function ‘main’:
./Main.c:11:3: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d\n", &d);
   ^
./Main.c:12:3: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result]
   fgets(n, 10002, stdin);
   ^

Judge Result

Set Name All
Score / Max Score 4 / 4
Status
AC × 5
Set Name Test Cases
All 00, 01, 02, 90, 91
Case Name Status Exec Time Memory
00 AC 1 ms 128 KB
01 AC 19 ms 128 KB
02 AC 31 ms 128 KB
90 AC 1 ms 128 KB
91 AC 1 ms 128 KB