Cod sursa(job #2338506)
| Utilizator | Data | 7 februarie 2019 15:58:36 | |
|---|---|---|---|
| Problema | Divk | Scor | 20 |
| Compilator | cpp-64 | Status | done |
| Runda | prega_agm_grupa1_contest1 | Marime | 0.59 kb |
#include <fstream>
#define MAXN 500000
#define MAXM 100000
using namespace std;
ifstream fin( "divk.in" );
ofstream fout( "divk.out" );
int v[MAXN+5], f[MAXM+5];
int main()
{
int n, m, a, b;
fin>>n>>m>>a>>b;
for( int i=1;i<=n;i++ )
{
fin>>v[i];
v[i]=(v[i]+v[i-1])%m;
}
for( int i=a;i<=b;i++ )
f[v[i]]++;
int ans=0, st=a, dr=b;
for( int i=1;st<=n;i++ )
{
ans+=f[v[i]];
f[v[st]]--;
if( dr+1<=n )
f[v[dr+1]]++;
st++;
dr++;
}
fout<<ans;
return 0;
}