Cod sursa(job #1143235)

Utilizator alex_bBinca Alexandra alex_b Data 14 martie 2014 23:52:22
Problema Divk Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 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> sums;
		vector<vector<int> > mod(k, vector<int>());
    for (int i = 0; i < n; ++i) {
      int t;
      fin >> t;
      if (i == 0) {
        sums.push_back(t % k);
      } else {  
			  sums.push_back((sums[i - 1] + t) % k);
			}
			mod[sums[i]].push_back(i);
    }
     
    int c = 0;
    
    for (int i = 0; i < (int)sums.size(); ++i) {
      for (int j = 0; j < (int)mod[sums[i]].size(); ++j) {
        int m = mod[sums[i]][j];
        if (i - m >= a - 1 && i - m <= b - 1) {
          ++c;
        }
      }
    }
		
    fout << c << endl;
    fout.close();
    return 0;
}