Cod sursa(job #1148897)

Utilizator alex_bBinca Alexandra alex_b Data 21 martie 2014 11:31:53
Problema Divk Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <cstdio>
#include <vector>
#include <fstream>
using namespace std;
  
ifstream fin("divk.in");
ofstream fout("divk.out");
  
int main(int argc, char *argv[]) {
	int k, a, b, n;
	fin >> n >> k >> a >> b;
	vector<int> s(n + 1, 0); 
	vector<int> eq(n, 0);
	int p = 0;
	
	for (int i = 0; i < n; ++i) {
		int t;
		fin >> t;
		s[i + 1] = (s[i] + t) % k;
		
		int c = 0;
		for (int j = p; i - j + 1 >= a; ++j) {
			if (s[i + 1] == s[j]) {
				++c;
			}
		}
		
		eq[i] = c;
		
		if (i - p + 1 >= b){
			++p;
		} 
	}    
	
	int c = 0;
	
	for (int i = 0; i < n; ++i) {
		c = c + eq[i];
	}	   
	fout << c << endl;
	fout.close();
	return 0;
}