Cod sursa(job #2286994)

Utilizator ptudortudor P ptudor Data 21 noiembrie 2018 11:19:14
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;
int L,U,n,a[1048600];
unordered_map <int,int> M;
queue <int> q;
long long solve(int x)
{int i, nd=0;
long long 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&&!q.empty())
        {
            if (--M[q.front()]==0){nd--;M.erase(q.front());}
            q.pop();
        }
        maxl+=q.size();
      //  cout<<maxl<<" ";
    }
    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];
    out<<solve(U)-solve(L-1)<<"\n";
    out.close();
    in.close();
    return 0;
}