Cod sursa(job #1561712)

Utilizator bogdanboboc97Bogdan Boboc bogdanboboc97 Data 4 ianuarie 2016 14:23:44
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <bits/stdc++.h>
#define int64 long long
using namespace std;
ifstream in("secv5.in");
ofstream out("secv5.out");
int64 a[1111111];
int n,x,y,k;
int64 solve(int64 t)
{
    map<int64,int> h;
    int64 sol=0,last=1;
    for(int i=1;i<=n;i++)
    {
        h[a[i]]++;
        while(h.size()>t)
        {
            h[a[last]]--;
            if(h[a[last]]==0)
                h.erase(h[a[last]]);
            last++;
        }
        sol+=(i-last+1);
    }
    return sol;
}
int main()
{
    in>>n>>x>>y;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    out<<solve(y)-solve(x-1)<<'\n';
    return 0;
}