Cod sursa(job #1737529)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 4 august 2016 13:07:29
Problema Secventa 5 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<cstdio>
#include<unordered_map>
#define MAXN 1048580
using namespace std;
int n,l,u;
unsigned int v[MAXN];
long long Count(int value){
    int i,j=1;
    long long answer=0;
    unordered_map<unsigned int,int> Map;
    Map.reserve(4096);
    Map.max_load_factor(0.5);
    for(i=1;i<=n;i++){
        Map[v[i]]++;
        while(static_cast<int>(Map.size())>value){
            Map[v[j]]--;
            if(Map[v[j]]==0)
                Map.erase(v[j]);
            j++;
        }
        answer=answer+i-j+1;
    }
    return answer;
}
int main(){
    freopen("secv5.in","r",stdin);
    freopen("secv5.out","w",stdout);
    int i;
    scanf("%u%u%u",&n,&l,&u);
    for(i=1;i<=n;i++)
        scanf("%d",&v[i]);
    printf("%lld",Count(u)-Count(l-1));
    return 0;
}