Cod sursa(job #1966642)
Utilizator | Data | 15 aprilie 2017 14:18:55 | |
---|---|---|---|
Problema | Divk | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.48 kb |
#include <fstream>
using namespace std;
ofstream fout("divk.out");
ifstream fin ("divk.in");
long long rsp;
int fv[100005],v[500005];
int n,k,a,b,i;
int main()
{
fin>>n>>k>>a>>b;
for( i = 1 ; i <= n ; i++ )
{
fin>>v[ i ];
v[ i ] = ( v[ i ] + v[ i - 1 ] ) % k;
if( i >= a )
{
fv[ v[ i - a ] ]++;
rsp += fv[ v[ i ] ];
}
if( i >= b )
fv[ v[ i - b ] ]--;
}
fout<<rsp;
}