Submission #11936944
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define int long long
int MOD,ans,dp[15][123456];
int pw(int n,int k){
assert(k>=0);
int res=1;
while(k){
if(k&1)(res*=n)%=MOD;
(n*=n)%=MOD;
k>>=1;
}
return res;
}
int f(int a,int b){//下a桁自由に使えて、ノーマル側がb先行している時の通り
if(~dp[a][b])return dp[a][b];
if(!a)return !b;
int res=0;
for(int i=0;i<10;i++)res+=f(a-1,(b+i*pw(10,a-1)+MOD-i)%MOD);
return dp[a][b]=res;
}
bool g(int a){//愚直
int res=0,b=a%MOD;
while(a){
res+=a%10;
a/=10;
}
return (res%MOD)==b;
}
signed main(){
memset(dp,-1,sizeof(dp));
cin>>MOD;
if(MOD>100000){
int M;cin>>M;
for(int i=1;i<=M;i++){
ans+=g(i);
if(i%MOD==100)i+=MOD-99;
}
}
else{
string m;cin>>m;
int S=m.size(),now=0;
for(int i=0;i<S;i++){
int T=pw(10,S-i-1)+MOD-1;
for(int j=0;j<m[i]-'0';j++){
ans+=f(S-1-i,now);
(now+=T)%=MOD;
}
}
ans+=!now;//Mが条件を満たす時
ans--;//0を除く
}
cout<<ans<<endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - 9 |
| User | drogskol |
| Language | C++14 (GCC 5.4.1) |
| Score | 100 |
| Code Size | 1136 Byte |
| Status | AC |
| Exec Time | 6 ms |
| Memory | 14720 KiB |
Judge Result
| Set Name | Sample | Subtask1 | Subtask2 | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 10 / 10 | 90 / 90 | ||||||
| Status |
|
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
| Subtask1 | sample_01.txt, sample_02.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, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt |
| Subtask2 | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.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, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.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, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample_01.txt | AC | 5 ms | 14720 KiB |
| sample_02.txt | AC | 5 ms | 14720 KiB |
| sample_03.txt | AC | 5 ms | 14720 KiB |
| sample_04.txt | AC | 5 ms | 14720 KiB |
| subtask1_01.txt | AC | 6 ms | 14720 KiB |
| subtask1_02.txt | AC | 6 ms | 14720 KiB |
| subtask1_03.txt | AC | 5 ms | 14720 KiB |
| subtask1_04.txt | AC | 5 ms | 14720 KiB |
| subtask1_05.txt | AC | 6 ms | 14720 KiB |
| subtask1_06.txt | AC | 6 ms | 14720 KiB |
| subtask1_07.txt | AC | 6 ms | 14720 KiB |
| subtask1_08.txt | AC | 5 ms | 14720 KiB |
| subtask1_09.txt | AC | 5 ms | 14720 KiB |
| subtask1_10.txt | AC | 5 ms | 14720 KiB |
| subtask1_11.txt | AC | 5 ms | 14720 KiB |
| subtask1_12.txt | AC | 5 ms | 14720 KiB |
| subtask1_13.txt | AC | 5 ms | 14720 KiB |
| subtask1_14.txt | AC | 5 ms | 14720 KiB |
| subtask1_15.txt | AC | 5 ms | 14720 KiB |
| subtask1_16.txt | AC | 5 ms | 14720 KiB |
| subtask1_17.txt | AC | 5 ms | 14720 KiB |
| subtask1_18.txt | AC | 5 ms | 14720 KiB |
| subtask1_19.txt | AC | 5 ms | 14720 KiB |
| subtask2_01.txt | AC | 5 ms | 14720 KiB |
| subtask2_02.txt | AC | 5 ms | 14720 KiB |
| subtask2_03.txt | AC | 5 ms | 14720 KiB |
| subtask2_04.txt | AC | 5 ms | 14720 KiB |
| subtask2_05.txt | AC | 5 ms | 14720 KiB |
| subtask2_06.txt | AC | 5 ms | 14720 KiB |
| subtask2_07.txt | AC | 5 ms | 14720 KiB |
| subtask2_08.txt | AC | 5 ms | 14720 KiB |
| subtask2_09.txt | AC | 5 ms | 14720 KiB |
| subtask2_10.txt | AC | 5 ms | 14720 KiB |
| subtask2_11.txt | AC | 5 ms | 14720 KiB |
| subtask2_12.txt | AC | 5 ms | 14720 KiB |
| subtask2_13.txt | AC | 5 ms | 14720 KiB |
| subtask2_14.txt | AC | 5 ms | 14720 KiB |
| subtask2_15.txt | AC | 6 ms | 14720 KiB |
| subtask2_16.txt | AC | 6 ms | 14720 KiB |
| subtask2_17.txt | AC | 6 ms | 14720 KiB |
| subtask2_18.txt | AC | 5 ms | 14720 KiB |
| subtask2_19.txt | AC | 5 ms | 14720 KiB |
| subtask2_20.txt | AC | 6 ms | 14720 KiB |
| subtask2_21.txt | AC | 5 ms | 14720 KiB |
| subtask2_22.txt | AC | 5 ms | 14720 KiB |
| subtask2_23.txt | AC | 5 ms | 14720 KiB |
| subtask2_24.txt | AC | 6 ms | 14720 KiB |
| subtask2_25.txt | AC | 6 ms | 14720 KiB |
| subtask2_26.txt | AC | 6 ms | 14720 KiB |
| subtask2_27.txt | AC | 5 ms | 14720 KiB |
| subtask2_28.txt | AC | 6 ms | 14720 KiB |
| subtask2_29.txt | AC | 5 ms | 14720 KiB |