比赛 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;
}