Pagini recente » Cod sursa (job #88384) | Cod sursa (job #3266519) | Cod sursa (job #874111) | Cod sursa (job #1866016) | Cod sursa (job #2889260)
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
unordered_map <int, int> map;
int v[1000000];
int n, l, u, x;
long long f(int nr)
{
int lung = 0;
long long secvu = 0;
int i = 0, j = 0;
while( j < n)
{
if(map[v[j]] == 0){
lung ++;
map[v[j]] = 1;
}
else {
map[v[j]] ++;
}
while(lung > nr)
{
map[v[i]] --;
if(map[v[i]] == 0)
{
lung --;
map.erase(v[i]);
}
i ++;
}
secvu += (j - i + 1);
j ++;
}
map.clear();
return secvu;
}
int main()
{
fin >> n >> l >> u;
for(int i = 0; i <= n; i ++)
fin >> v[i];
fout << f(u) - f(l - 1);
// fout << secvu << '\n';
// fout << secvl;
// while( lung <= u)
// {
// int i = 0;
// if(map.size() == 0)
// {
// map[0] = v[];
// i++;
// }
// else if(map[i - 1] == x)
// {
// lg[lung] ++;
// }
// else if(map[i - 1] != x)
// {
// lg[lung] += i;
// }
// }
}