Cod sursa(job #2877019)

Utilizator trifangrobertRobert Trifan trifangrobert Data 24 martie 2022 08:30:27
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <vector>
#include <unordered_map>

using namespace std;

long long Solve(vector <int> &v, int K) {
    unordered_map <unsigned int, int> freq;
    long long cnt = 0;
    for (int i = 0, j = 0; i < v.size(); ++i) {
        freq[v[i]] += 1;
        while (j < i && freq.size() > K) {
            freq[v[j]]--;
            if (freq[v[j]] == 0) {
                freq.erase(v[j]);
            }
            ++j;
        }
        cnt += (i - j);
    }
    return cnt;
}

int main() {
    ifstream fin("secv5.in");
    ofstream fout("secv5.out");
    int N, L, U;
    fin >> N >> L >> U;
    vector <int> v(N);
    for (int i = 0; i < N; ++i) {
        fin >> v[i];
    }
    fout << Solve(v, U) - Solve(v, L - 1) << "\n";
    fin.close();
    fout.close();
    return 0;
}