Cod sursa(job #1995162)

Utilizator Y0da1NUME JMECHER Y0da1 Data 27 iunie 2017 09:38:41
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <unordered_map>

using namespace std;

int N, L, U;
int nr[1050000];
long long functie(int x)
{
    unordered_map<int, int> aparitii;
    int i, j=1;
    long long int s=0;
    for (i=1;i<=N;++i)
    {
        aparitii[nr[i]]++;
        if(aparitii[nr[i]]==1)
        while(aparitii.size() > x)
        {
            aparitii[nr[j]]--;
            if(!aparitii[nr[j]])
            {
                aparitii.erase(nr[j]);
            }
            ++j;
        }
        s=s+i-j+1;
    }
    return s;
}
int main()
{
    int i;
    ifstream in ("secv5.in");
    ofstream out ("secv5.out");

    in>>N>>L>>U;

    for (i=1;i<=N;++i)
        in>>nr[i];

    out<<functie(U) - functie(L-1)<<"\n";
    return 0;

}