Cod sursa(job #2051642)

Utilizator tifui.alexandruTifui Ioan Alexandru tifui.alexandru Data 29 octombrie 2017 13:06:37
Problema Secventa 5 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>
#define Nmax 1048580
#define ll long long
using namespace std;
ifstream f("secv5.in");
ofstream g("secv5.out");
int v[Nmax];
unordered_map <int,int> M;
int n,l,u;
ll solve(int N)
{
    ll ans=0;
    M.clear();
    int i,p=1,nr=0;
    for(i=1;i<=n;i++)
    {
        if(!M[v[i]]) nr++;
        M[v[i]]++;
        while(nr>N)
        {
            M[v[p]]--;
            if(!M[v[p]])
            {
                --nr;
                M.erase(v[p]);
            }
            p++;
        }
        ans+=(i-p);
    }
    return ans;
}
int main()
{
    f>>n>>l>>u;
    for(int i=1;i<=n;i++)
        f>>v[i];
    g<<solve(u)-solve(l-1);

    return 0;
}