Cod sursa(job #2889260)

Utilizator anne_marieMessner Anne anne_marie Data 12 aprilie 2022 15:27:46
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");

unordered_map <int, int> map;
int v[1000000];
int n, l, u, x;

long long f(int nr)
{
    int lung = 0;

    long long secvu = 0;
    int i = 0, j = 0;
    while( j < n)
    {
        if(map[v[j]] == 0){
            lung ++;
            map[v[j]] = 1;
        }
        else {
            map[v[j]] ++;
        }

        while(lung > nr)
        {
            map[v[i]] --;
            if(map[v[i]] == 0)
            {
                lung --;
                map.erase(v[i]);
            }
            i ++;
        }

        secvu += (j - i + 1);
        j ++;

    }
    map.clear();
    return secvu;

}


int main()
{
    fin >> n >> l >> u;
    for(int i = 0; i <= n; i ++)
        fin >> v[i];
    fout << f(u) - f(l - 1);



//    fout << secvu << '\n';
//    fout << secvl;



//    while( lung <= u)
//    {
//        int i = 0;
//        if(map.size() == 0)
//        {
//            map[0] = v[];
//            i++;
//        }
//        else if(map[i - 1] == x)
//        {
//            lg[lung] ++;
//        }
//        else if(map[i - 1] != x)
//        {
//            lg[lung] += i;
//        }
//    }

}