Cod sursa(job #2338506)

Utilizator oneorzeroOne or zero oneorzero 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;
}