Cod sursa(job #2181906)

Utilizator NannyiMaslinca Alecsandru Mihai Nannyi Data 21 martie 2018 21:53:05
Problema Secventa 5 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include <map>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <fstream>
#include <deque>
using namespace std;
#define nmax (1<<20)+100
ifstream f("secv5.in");
ofstream g("secv5.out");

int n,l,u,op,elem,mn;
unsigned int vect[nmax],freq[nmax],curent,last,hashes[nmax];

unordered_map<long long,int>Ma,Ma2;

long long withlen(int lim,unordered_map<long long,int>Mah)
{
    long long ans=0;
    int j=1;
    for (int i=1; i<=n; ++i)
    {
        ++Mah[vect[i]];
        while (Mah.size()>lim)
        {
            Mah[vect[j]]--;
            if (Mah[vect[j]]==0)
                Mah.erase(vect[j]);
            ++j;
        }
        ans+=(i-j+1);
    }
    return ans;
}

int main()
{
    f>>n>>l>>u;
    for (int i=1; i<=n; ++i)
        f>>vect[i];
    g<<withlen(u,Ma)-withlen(l-1,Ma2);
    return 0;
}