Cod sursa(job #1280434)

Utilizator dorumusuroiFMI - Doru Musuroi dorumusuroi Data 1 decembrie 2014 22:31:50
Problema Secventa 5 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>
#include <unordered_map>
#include <iostream>
using namespace std;
unsigned int n;
unsigned long nrsecv(unsigned int lim, unsigned int *a)
{
    unordered_map <unsigned int, unsigned int> coada;
    unsigned int i,inc=0;
    unsigned long nrs=0;
    for(i=0;i<n;i++)
    {
        coada[a[i]]++;
        while(coada.size()>lim)
        {
            coada[a[inc]]--;
            if(coada[a[inc]]==0)
                coada.erase(a[inc]);
            inc++;
        }
        nrs+=i-inc;
    }
    return nrs;
}
int main()
{
    FILE *f=fopen("secv5.in","r");
    FILE *g=fopen("secv5.out","w");
    unsigned int x[1048577];
    unsigned int l,i,u;
    unsigned long s1, s2;
    fscanf(f,"%u %u %u",&n,&l,&u);
    for(i=0;i<n;i++)
        fscanf(f,"%u",x+i);
    s1=nrsecv(l-1,x);
    s2=nrsecv(u,x);
    fprintf(g,"%ld",s2-s1);
    return 0;
}