Cod sursa(job #689627)

Utilizator vlad.doruIon Vlad-Doru vlad.doru Data 24 februarie 2012 18:14:10
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream in("divk.in");
ofstream out("divk.out");

const int N=500001;
const int K=100000;

int k,a,b,n;
int s[N];
long long rez;

vector <int> v[K];

int main(){
	int i,j,k,x;
	in>>n>>k>>a>>b;
	for(i=1;i<=n;++i){
		in>>x;
		s[i]=(s[i-1]+x)%k;
		v[s[i]].push_back(i);
	}
	for(i=0;i<v[0].size();++i){
		if(v[0][i]>=a && v[0][i]<=b)
			rez++;
	}
	for(i=0;i<k;++i){
		for(j=0;j<v[i].size()-1;++j){
			for(k=j+1;k<v[i].size();++k){
				if(v[i][k]-v[i][j]>=a && v[i][k]-v[i][j]<=b)
					rez++;
			}
		}
	}
	out<<rez;
	return 0;
}