Cod sursa(job #1831068)
Utilizator | Data | 17 decembrie 2016 13:56:01 | |
---|---|---|---|
Problema | Divk | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.46 kb |
#include <fstream>
using namespace std;
int r[500000],s[500000],fr[100000];
int main()
{
ifstream f("divk.in");
ofstream g("divk.out");
int n,k,i,x,a,b,cs,d;
long long sec = 0;
f>>n>>k>>a>>b;
for(i = 1; i <= n; i++)
{
f>>x;
r[i] = x % k;
s[i] = (s[i - 1] + r[i]) % k;
if(i >= a)
fr[s[i - a]]++;
if(i > b)
fr[s[i - b - 1]]--;
sec+= fr[s[i]];
}
g<<sec;
return 0;
}