Cod sursa(job #1461274)

Utilizator robx12lnLinca Robert robx12ln Data 15 iulie 2015 12:13:44
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int v[500005];
vector<int> st;
int f[100005],n,k,a,b,i,sol;
int main(){
    fin>>n>>k>>a>>b;
    for(i=1;i<=n;i++){
        fin>>v[i];
        v[i]=v[i]+v[i-1];
    }
    for(i=1;i<=n;i++){
        v[i]%=k;
    }
    for(i=1;i<=n;i++){
        st.push_back( v[i] );
        if(f[ v[i] ]!=0){
            sol+=f[v[i]];
        }
        if(v[i]==0 && a==1) sol++;
        f[v[i]]++;
        if(st.size()==b+1){
            if(f[st[0]]!=0) f[st[0]]--;
            st.erase( st.begin() );
        }
    }
    fout<<sol<<"\n";
    return 0;
}