Cod sursa(job #2219934)

Utilizator 12222Fendt 1000 Vario 12222 Data 10 iulie 2018 00:30:57
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("secv5.in");
ofstream fout("secv5.out");

const int nmax=(1<<20)+2;

int l,u,n,a[nmax];
unordered_map<long long,int>m;

long long nr_secv(int lg)
{
    int i,j,cnt;
    long long nrsol;


    i=1;nrsol=cnt=0;
    for(j=1;j<=n;j++)
    {
        m[a[j]]++;
        if(m[a[j]]==1)cnt++;

        while(i<=j && cnt>lg)
        {
            m[a[i]]--;
            if(m[a[i]]==0)cnt--;

            i++;
        }
        nrsol+=(j-i+1);
    }
    return nrsol;
}

int main()
{
    fin>>n>>l>>u;

    for(int i=1;i<=n;i++)
        fin>>a[i];

    int L,U;
    L=nr_secv(l-1);
    m.clear();
    U=nr_secv(u);

    fout<<U-L<<"\n";
    return 0;
}