Cod sursa(job #2286992)

Utilizator ptudortudor P ptudor Data 21 noiembrie 2018 11:01:11
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>
using namespace std;
int L,U,n,a[1048600];
unordered_map <int,int> M;
queue <int> q;
int solve(int x)
{int i, nd=0,maxl=0;
while (!q.empty())
        {M[q.front()]--;q.pop();}
    for (i=1;i<=n;i++)
    {
        q.push(a[i]);
        if (++M[a[i]]==1)nd++;
        while (nd>x)
        {
            if (M[q.front()]--==1)nd--;
            q.pop();
        }
        maxl+=q.size();
    }
    return maxl;
}
int main()
{int i;
    ifstream in("secv5.in");
    ofstream out("secv5.out");
    in>>n>>L>>U;
    for (i=1;i<=n;i++) in>>a[i];
    int x=solve(U)-solve(L-1);
    out<<x<<"\n";
    out.close();
    in.close();
    return 0;
}