| 比赛 |
2026.1.8 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
| 题目名称 |
数字段 |
最终得分 |
100 |
| 用户昵称 |
yyswys |
运行时间 |
1.222 s |
| 代码语言 |
C++ |
内存使用 |
4.76 MiB |
| 提交时间 |
2026-01-08 21:14:26 |
显示代码纯文本
#include<bits/stdc++.h>
#define cin std::cin
#define cout std::cout
#define ciallo ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define int long long
using namespace std;
const int N=1e5+5;
int n,m,k,l,a[N],cnt[N],f[N];
int pow10[N],summ[N],ans;
signed main(){
freopen("number.in","r",stdin);
freopen("number.out","w",stdout);
ciallo
cin>>n>>m>>k>>l;
for(int i(1);i<=n;++i){
cin>>a[i];
}
pow10[0]=1%m;
summ[0]=0;
for(int i(1);i<=n;++i){
cin>>a[i];
pow10[i]=pow10[i-1]*10%m;
summ[i]=(summ[i-1]*10+a[i])%m;
}
for(int i(1);i<=n;++i){
for(int j(0);j<m;++j){
f[j]=0;
}
for(int j(0);j<m;++j){
if(cnt[j]>0){
int ny=(j*10+a[i])%m;
f[ny]+=cnt[j];
}
}
f[a[i]%m]++;
if(i>l){
f[(summ[i]-summ[i-l-1]*pow10[l+1]%m+m)%m]--;
}
for(int j(0);j<m;++j){
cnt[j]=f[j];
}
ans+=cnt[k];
}
cout<<ans<<"\n";
return 0;
}