Cod sursa(job #2886918)

Utilizator mariailincailinca maria nechita mariailinca Data 8 aprilie 2022 16:41:04
Problema Secventa 5 Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <iostream>
#include <unordered_map>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream fin("secv5.in");
ofstream fout("secv5.out");

const int maxi=(1<<20)+10;
unsigned int v[maxi], N, L, U;

unsigned long determinaresubsec(unsigned k, unsigned int v[maxi])
{
   unordered_map<unsigned,int>subsecv;
   unsigned long nrsubsec=0, j=0;
   for (int i=0;i<N;i++)
   {
       subsecv[v[i]]++;
       while(subsecv.size()>k){
			subsecv[v[j]]--;
			if(subsecv[v[j]]==0){
				subsecv.erase(subsecv.find(v[j]));
			}
			j++;
		}
		nrsubsec+=(i-j+1);
	}
	return nrsubsec;
}


int main()
{

    fin >> N >> L >> U;
    for (int i=0;i<N;i++)
    {
      fin >> v[i];
    }

    fout << determinaresubsec(U,v)- determinaresubsec(L-1,v) << endl;
    return 0;
}