Cod sursa(job #1149343)

Utilizator alex_bBinca Alexandra alex_b Data 21 martie 2014 18:37:56
Problema Divk Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <cstdio>
#include <vector>
#include <queue>
#include <fstream>
using namespace std;
  
ifstream fin("divk.in");
ofstream fout("divk.out");
  
int main(int argc, char *argv[]) {
	int k, a, b, n, c = 0, q, ant = 0;
	fin >> n >> k >> a >> b;
	vector<vector<int> > mod(k, vector<int>());
	mod[0].push_back(0);

	for (int i = 0; i < n; ++i) {
		int t;
		fin >> t;
		int m = (ant + t) % k;
		ant = m;
		
		q = 0;
		for (int j = 0; j < (int) mod[m].size() ; ++j) {
			if (i - mod[m][j] + 1 >= a && i - mod[m][j] + 1 <= b) {
				++q;
			}
		}
		mod[m].push_back(i + 1);	
		c = c + q;
	}    
	  
	fout << c << endl;
	fout.close();
	return 0;
}