Submission #1613598


Source Code Expand

#include <bits/stdc++.h>
#define REP(i,a,b) for(int i=(a);i<(b);i++)
#define RREP(i,a,b) for(int i=(a);i>=(b);i--)
typedef long long ll; typedef long double ld;
using namespace std;
const int INF=1e9, MOD=1e9+7;
const int MAX_N=10000;
int d;
string s;
ll dp[100010][2][100];
int tmp[10010][110];

int main(){
	cin >> d >> s;
	
	dp[0][0][0]=1;
	REP(i,0,s.size()) REP(j,0,2) REP(k,0,d){
		int n=(j?10:s[i]-'0'+1);
		
		REP(l,0,n){
			dp[i+1][j|(l+1)<n][(k+l)%d] += dp[i][j][k];
			dp[i+1][j|(l+1)<n][(k+l)%d] %= MOD;
		}
	}

	cout << (dp[s.size()][0][0]+dp[s.size()][1][0]-1+MOD)%MOD << endl;
	return 0;
}
	

Submission Info

Submission Time
Task E - 数
User ecasdqina
Language C++14 (GCC 5.4.1)
Score 4
Code Size 635 Byte
Status AC
Exec Time 83 ms
Memory 16640 KB

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 2 ms 2304 KB
01 AC 52 ms 16640 KB
02 AC 83 ms 16640 KB
90 AC 2 ms 2304 KB
91 AC 2 ms 2304 KB