Cod sursa(job #1573666)

Utilizator codi22FMI Condrea Florin codi22 Data 19 ianuarie 2016 20:46:23
Problema Secventa 5 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include <cstdio>
#include <fstream>
using namespace std;
#include <vector>
#include <unordered_map>
long long int V[200000000],n;
long long int rez(long long int limita)
{
    long long int r=0;
    long long int s,d;
    unordered_map <unsigned int,int> H;
    for (s=1,d=1;d<=n;++d)
    {
        ++H[V[d]];
        while (H.size()>limita)
        {
            //H[V[s]]--;
            if (--H[V[s]]==0) H.erase(V[s]);
            ++s;
        }
        r+=d-s+1;
    }
    return r;
}
int main()
{
 /*  freopen("secv5.in","r",stdin);
   freopen("secv5.out","w",stdout);
   long long int s,d,i;
   scanf("%li %li %li",&n,&s,&d);*/
   long long int s,d,i;
   ifstream f("secv5.in");
  ofstream g("secv5.out");
   f>>n>>s>>d;
   for (i=1;i<=n;i++)
   {
      // scanf("%lli",V[i]);
      f>>V[i];
   }
   g<<rez(d)-rez(s-1);
}