Cod sursa(job #2886932)

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

using namespace std;

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

vector <long long> v;
unsigned int N, L, U;

unsigned long long determinaresubsec(unsigned k)
{
   unordered_map<long,long>subsecv;
   unsigned long nrsubsec=0, j=0;
   for (long 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;
    v.resize(N);
    for (long i=0;i<N;i++)
    {
      fin >> v[i];
    }

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