Cod sursa(job #1428366)
Utilizator | Data | 4 mai 2015 11:46:47 | |
---|---|---|---|
Problema | Divk | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.48 kb |
#include <fstream>
#define NMAX 500001
#define NNMAX 100001
using namespace std;
ifstream f("divk.in");
ofstream g("divk.out");
int i, n, a, b, v[NMAX], k, dp[NMAX], rez=0;
int main()
{
f>>n>>k>>a>>b;
for (i=1; i<=n; ++i)
{
f>>v[i];
v[i]=(v[i-1]+v[i])%k;
}
dp[0]=1;
for (i=a; i<=n; ++i)
{
if (i-b>=1) dp[v[i-b-1]]--;
rez+=dp[v[i]];
dp[v[i-a+1]]++;
}
g<<rez<<'\n';
return 0;
}