Pagini recente » Cod sursa (job #1812408) | Cod sursa (job #2219811) | Cod sursa (job #2851061) | Cod sursa (job #1227102) | Cod sursa (job #803551)
Cod sursa(job #803551)
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <string.h>
using namespace std;
int n, k, a, b;
long long v[500001], c[500001], nr=0, size=0, sum=0, i, j, x;
int main()
{
FILE *f=fopen("divk.in","r");
FILE *g=fopen("divk.out","w");
//Read
fscanf(f, "%d %d %d %d", &n, &k, &a, &b), b++;
for(i=1; i<=n; i++)
{
fscanf(f, "%lld", &x);
v[i] = (x+v[i-1])%k;
}
//Compute
for(i=a;i<=n;i++)
{
c[v[i-a]]++;
if(i>=b)
c[v[i-b]]--;
sum = sum+c[v[i]];
}
//Print
fprintf(g, "%lld", sum);
}