Cod sursa(job #2094988)

Utilizator usureluflorianUsurelu Florian-Robert usureluflorian Data 26 decembrie 2017 19:52:04
Problema Secventa 5 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream f ("secv5.in");
ofstream g ("secv5.out");
int n,l,u,v[1<<20+1];
unordered_map <int,int> usu;
long long solve(int k)
{
    usu.clear();
    long long act=1,sol=0;
    for(int i=1;i<=n;++i)
    {
        ++usu[v[i]];
        while(usu.size()>k)
        {
            --usu[v[act]];
            if(usu[v[act]]==0) usu.erase(v[act]);
            ++act;
        }
        sol+=i-act+1;
    }
    return sol;
}
int main()
{
    f>>n>>l>>u;
    for(int i=1;i<=n;++i) f>>v[i];
    g<<solve(u)-solve(l-1); //cate secvente au cel mult k elem distincte
    return 0;
}