Pagini recente » Cod sursa (job #2248674) | Cod sursa (job #2491673) | Cod sursa (job #245270) | Cod sursa (job #1412500) | Cod sursa (job #3267662)
#include <fstream>
#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;
unordered_map <unsigned int, int> f1, f2;
vector <unsigned int> v;
int main(){
int n, l, u, i, j, k, tot1, tot2;
unsigned int x;
long long r;
ifstream fin( "secv5.in" );
ofstream fout( "secv5.out" );
fin >> n >> l >> u;
tot1 = tot2 = r = j = k = 0;
for( i = 0; i < n; i++ ){
fin >> x;
v.push_back( x );
f1[x]++;
f2[x]++;
if( f1[x] == 1 ){
tot1++;
}
if( f2[x] == 1 ){
tot2++;
}
//cout << x << ' ' << i << ' ' << j << ' ' << k << ' ' << tot1 << ' ' << tot2 << '\n';
while( tot1 > u ){
f1[v[j]]--;
if( f1[v[j]] == 0 ){
tot1--;
}
j++;
}
while( tot2 >= l ){
f2[v[k]]--;
if( f2[v[k]] == 0 ){
tot2--;
}
k++;
}
r += k - j;
//cout << j << ' ' << k << '\n';
}
fout << r;
return 0;
}