Cod sursa(job #2884329)

Utilizator VartonVarts Var Varton Data 2 aprilie 2022 21:37:40
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 0.96 kb
#include <iostream>
#include <bits/stdc++.h>
#include <fstream>
#include <map>

using namespace std;
ifstream in("secv5.in");
ofstream out("secv5.out");
const unsigned int mod = 666013;
map<unsigned int, unsigned int> m1,m2;
vector<unsigned int> v1;
int main() {
    long long l, u, n;
    unsigned int x;
    in >> n ;
    in>> l >> u;
    for (unsigned int i = 0; i < n; i++) {
        in>>x;
        v1.push_back(x);
    }
    long long s=0, cntU=0, cntL=0;
    for (unsigned int i=0; i<n; i++) {
        m1.insert(pair<unsigned int,unsigned int>(v1[i]%mod,v1[i]));
        while(m1.size()>u)
            m1.erase(v1[s++]);
        cntU += (i-s+1);
    }
    s = 0;
    for (unsigned int i=0; i<n; i++) {
        m2.insert(pair<unsigned int,unsigned int>(v1[i]%mod,v1[i]));
        while(m2.size()>=l)
            m2.erase(v1[s++]);
        cntL += (i-s+1);
    }
//    cout<<cntU<<" "<<cntL<<endl;
    cout<< cntU - cntL + 1;
    return 0;
}