Cod sursa(job #2092683)

Utilizator refugiatBoni Daniel Stefan refugiat Data 22 decembrie 2017 08:26:13
Problema Secventa 5 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream si("secv5.in");
ofstream so("secv5.out");
int n;
unsigned int v[(1<<20)+5];
inline long long secv(int b)
{
    unordered_map <unsigned int,int> m;
    long long nr=0;
    int j=1;
    for(int i=1;i<=n;i++)
    {
        m[v[i]]++;
        while(m.size()>b)
        {
            m[v[j]]--;
            if(m[v[j]]==0)
               m.erase(v[j]);
            j++;
        }
        nr+=(i-j+1);
    }
    return nr;
}
int main()
{
    int a,b;
    si>>n>>a>>b;
    for(int i=1;i<=n;++i)
        si>>v[i];
    so<<secv(b)-secv(a-1);
    return 0;
}