Cod sursa(job #1280426)

Utilizator dorumusuroiFMI - Doru Musuroi dorumusuroi Data 1 decembrie 2014 22:25:13
Problema Secventa 5 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
#include <unordered_map>
#include <iostream>
using namespace std;
int n;
int nrsecv(unsigned int lim, unsigned int *a)
{
    unordered_map <unsigned int, unsigned int> coada;
    int i,inc=0,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];
    int l,i,u,s1,s2;
    fscanf(f,"%d %d %d",&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,"%d",s2-s1);
    return 0;
}