Cod sursa(job #1131926)

Utilizator alex_bBinca Alexandra alex_b Data 2 martie 2014 02:32:15
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 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;
    vector<int> v;
    fin >> n >> k >> a >> b;
    for (int i = 0; i < n; ++i) {
      int t;
      fin >> t;
      v.push_back(t); 
    }
    
    int s = 0, e = 0, c = 0, sum = v[0];
    
    while(1) {
      while (e - s < b) {
        ++e;
        if (e >= (int) v.size()) {
          break;
        }
        sum += v[e];
        if ((e - s >= a) && (sum % k == 0)) {
          ++c;
        }
      }
      while (e - s >= a) {
        sum -= v[s];
        s++;
        if (sum % k == 0) {
          ++c;
        }
      }
      if (e >= (int) v.size()) {
        break;
      }
    }
    fout << c << endl;
    fout.close();
    return 0;
}