Cod sursa(job #2338513)

Utilizator oneorzeroOne or zero oneorzero Data 7 februarie 2019 16:05:52
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda prega_agm_grupa1_contest1 Marime 0.54 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]]++;

  long long ans=0;

  for( int i=0;a<=n;i++ )
  {
    ans+=f[v[i]];

    f[v[a]]--;

    if( b+1<=n )
      f[v[b+1]]++;

    a++;
    b++;
  }

  fout<<ans;

  return 0;
}