Cod sursa(job #2286997)

Utilizator ptudortudor P ptudor Data 21 noiembrie 2018 11:24:46
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 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())

        q.pop();
    M.clear();

    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;

}