Cod sursa(job #1775594)
| Utilizator | Data | 10 octombrie 2016 16:22:29 | |
|---|---|---|---|
| Problema | Divk | Scor | 90 |
| Compilator | c | Status | done |
| Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <stdio.h>
#include <stdlib.h>
int nr[100001],s[500001];
int main()
{ FILE *fin,*fout;
int n,k,a,b,i,rez,x;
fin=fopen("divk.in","r");
fout=fopen("divk.out","w");
fscanf(fin,"%d %d %d %d",&n,&k,&a,&b);
rez=0;
for(i=1;i<=n;i++){
fscanf(fin,"%d",&x);
s[i]=(s[i-1]+x)%k;
if(i>=a)
nr[s[i-a]]++;
if(i>b)
nr[s[i-b-1]]--;
rez+=nr[s[i]];
}
fprintf(fout,"%d",rez);
fclose(fin);
fclose(fout);
return 0;
}
