Mai intai trebuie sa te autentifici.
Cod sursa(job #1455569)
| Utilizator | Data | 28 iunie 2015 14:55:00 | |
|---|---|---|---|
| Problema | Divk | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.61 kb |
#include<fstream>
using namespace std;
ifstream in("divk.in");
ofstream out("divk.out");
const int NMAX = 500005;
int v[NMAX],dp[NMAX],N,K,A,B;
void read()
{
in>>N>>K>>A>>B;
for(int i = 1 ; i <= N ; ++i){
in>>v[i];
v[i] = (v[i] + v[i-1]) % K;
}
in.close();
}
void solve()
{
long long rez = 0;
for(int i = 1 ; i <= N ; ++i){
if(i >= A)
dp[ v[ i - A] ] ++;
if( i > B)
dp[ v [ i - B - 1] ] --;
rez += dp[v[i]];
}
out<<rez;
}
int main()
{
read();
solve();
return 0;
}
