Cod sursa(job #2479120)

Utilizator rebecca0312Andrei Rebecca rebecca0312 Data 23 octombrie 2019 11:45:39
Problema Secventa 5 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<fstream>
#include<unordered_map>
using namespace std;

const int NMAX=(1<<20)+10;

int n;
unsigned int v[NMAX];

long long nr_secv(const int &lg){
	long long nr_sol=0;
	unordered_map <unsigned int, int> mp;
	for(int i=1,j=1;j<=n;j++){
		mp[v[j]]++;
		while((int)mp.size()>lg){
			mp[v[i]]--;
			if(mp[v[i]]==0)
				mp.erase(v[i]);
			i++;
		}
		nr_sol=1LL*nr_sol+j-i+1;
	}
	return nr_sol;
}

int main(){
	ifstream fin("secv5.in");
	ofstream fout("secv5.out");
	int l,u;
	fin>>n>>l>>u;
	for(int i=1;i<=n;i++)
		fin>>v[i];
	fout<<nr_secv(l-1)-nr_secv(u);
	return 0;
}