Pagini recente » Cod sursa (job #844021) | Cod sursa (job #443851) | Cod sursa (job #739787) | Cod sursa (job #1602815) | Cod sursa (job #1461274)
#include<fstream>
#include<vector>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int v[500005];
vector<int> st;
int f[100005],n,k,a,b,i,sol;
int main(){
fin>>n>>k>>a>>b;
for(i=1;i<=n;i++){
fin>>v[i];
v[i]=v[i]+v[i-1];
}
for(i=1;i<=n;i++){
v[i]%=k;
}
for(i=1;i<=n;i++){
st.push_back( v[i] );
if(f[ v[i] ]!=0){
sol+=f[v[i]];
}
if(v[i]==0 && a==1) sol++;
f[v[i]]++;
if(st.size()==b+1){
if(f[st[0]]!=0) f[st[0]]--;
st.erase( st.begin() );
}
}
fout<<sol<<"\n";
return 0;
}