Cod sursa(job #3122277)

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