Cod sursa(job #3122255)

Utilizator AffectiveSmile2Mihnea Matea AffectiveSmile2 Data 18 aprilie 2023 13:07:37
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream f("secv5.in");
ofstream g("secv5.out");
int v[1048578],n;
int calcul(int L,int U)
{
    if(L!=1)
        return calcul(1,U)-calcul(1,L-1);
    unordered_map <int,int> ap;
    int nrDist=1,nrSecv=0;
    ap[v[0]]++;
    int i=0,j=1;
    while(i<n)
    {
        if(j<n&&((ap.find(v[j])==ap.end()&&nrDist+1<=U)||(ap.find(v[j])!=ap.end())))
        {
            if(ap.find(v[j])==ap.end())
                nrDist++;
            ap[v[j]]++;
            j++;
        }
        else
        {
            nrSecv+=j-i;
            ap[v[i]]--;
            if(ap[v[i]]==0)
                nrDist--;
            i++;
        }
    }
    return nrSecv;
}
int main()
{
    int l,u,i;
    f>>n>>l>>u;
    for(i=1;i<=n;i++)
        f>>v[i];
    g<<calcul(l,u);
}