Cod sursa(job #1648327)
| Utilizator | Data | 11 martie 2016 09:31:39 | |
|---|---|---|---|
| Problema | Divk | Scor | 0 |
| Compilator | c | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <stdio.h>
#define lim 500005
#define mod 1000005
int s[lim],ap[mod];
int main(){
FILE *fin,*fout;
fin=fopen("divk.in","r");
fout=fopen("divk.out","w");
int i,n,m,st,dr,rasp=0;
fscanf(fin,"%d%d%d%d",&n,&m,&st,&dr);
for(i=1;i<=n;i++){
fscanf(fin,"%d",&s[i]);
s[i]=(s[i]+s[i-1])%m;
if(i-dr>0)
ap[i-dr-1]--;
if(i-st>=0)
ap[s[i-st]]++;
rasp=rasp+ap[s[i]];
}
fprintf(fout,"%d",rasp);
fclose(fin);
fclose(fout);
return 0;
}
