Cod sursa(job #2469565)

Utilizator mirceatlxhaha haha mirceatlx Data 7 octombrie 2019 18:43:52
Problema Secventa 5 Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
	
#include <fstream>
#include <unordered_map>
 
using namespace std;
 
const int NMAX = (1 << 20) + 10;
int n, l, u;
unsigned int v[NMAX];
 
long long Solve(const int &k)
{
	long long ret = 0;
	unordered_map <unsigned int, int> mp;
	for (int i = 1, j = 1;j <= n;++j)
	{
		mp[v[j]]++;
		while (mp.size() > k)
		{
			mp[v[i]]--;
			if (mp[v[i]] == 0)
				mp.erase(v[i]);
			++i;
		}
		ret = 1LL * ret + j - i + 1;
	}
	return ret;
}
 
int main()
{
	ifstream fin("secv5.in");
	ofstream fout("secv5.out");
	fin >> n >> l >> u;
	for (int i = 1;i <= n;++i)
		fin >> v[i];
	fout << Solve(u) - Solve(l - 1) << "\n";
	fin.close();
	fout.close();
	return 0;
}