Cod sursa(job #3233342)

Utilizator MirceaDonciuLicentaLicenta Mircea Donciu MirceaDonciuLicenta Data 2 iunie 2024 23:48:13
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <unordered_map>

using namespace std;

int countSubsequences(const vector<int>& arr, int L, int U) {
    int n = arr.size();
    int count = 0;

    for (int left = 0; left < n; ++left) {
        unordered_map<int, int> freq;
        int distinct_count = 0;

        for (int right = left; right < n; ++right) {
            if (freq[arr[right]] == 0) {
                distinct_count++;
            }
            freq[arr[right]]++;

            if (distinct_count >= L && distinct_count <= U) {
                count++;
            } else if (distinct_count > U) {
                break;
            }
        }
    }

    return count;
}

int main() {
    ifstream infile("secv5.in");
    ofstream outfile("secv5.out");

    int N, L, U;
    infile >> N >> L >> U;

    vector<int> arr(N);
    for (int i = 0; i < N; ++i) {
        infile >> arr[i];
    }

    int result = countSubsequences(arr, L, U);

    outfile << result << endl;

    infile.close();
    outfile.close();

    return 0;
}