Cod sursa(job #2039004)

Utilizator alisavaAlin Sava alisava Data 14 octombrie 2017 10:33:21
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;
map<unsigned int,int>M;
unsigned int  a[1024*1024+20],n,L,U;

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


///Cate secvente au cel mult k valori dinstincte
void Citire()
{
    fin>>n>>L>>U;
    for(int i=1;i<=n;i++)
    {
        fin>>a[i];
    }
}
long long NrSecvente(int k)
{
    int i,j;
    unsigned int x;
    long long cnt;
    i=1;
    for(j=1;j<=n;j++)
    {
        M[a[j]]++;
        while(M.size()>k)
        {cout<<"hey";
            x=a[i];
            i++;
            M[x]--;
            if(M[x]==0) M.erase(x);
        }
        cnt+=(j-i+1);
        ///adaug cele j-i+1 secvente
        ///care se termina cu a[j]
    }
    return cnt;
}
int main()
{
    Citire();
    fout<<NrSecvente(U)-NrSecvente(L-1);
    return 0;
}