Cod sursa(job #2441576)

Utilizator adimiclaus15Miclaus Adrian Stefan adimiclaus15 Data 20 iulie 2019 17:28:53
Problema Secventa 5 Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <deque>
#include <map>
using namespace std;
ifstream f("secv5.in");
ofstream g("secv5.out");
unsigned int n,l,u,a[1<<21];
long long Count(unsigned int x)
{
    unsigned int i,nr=0;
    long long sol=0;
    deque <int> dq;
    map <unsigned int,unsigned int> mp;
    for(i=1;i<=n;i++)
    {
        if(mp[a[i]]==0)
        {
            nr++;
        }
        dq.push_back(a[i]);
        mp[a[i]]++;
        while(nr>x)
        {
            mp[dq.front()]--;
            if(mp[dq.front()]==0)
            {
                nr--;
            }
            dq.pop_front();
        }
        sol=sol+dq.size();
    }
    return sol;
}
int main()
{
    unsigned int i;
    f>>n>>l>>u;
    for(i=1;i<=n;i++)
    {
        f>>a[i];
    }
    g<<Count(u)-Count(l-1);
    return 0;
}