Pagini recente » Cod sursa (job #1788759) | Cod sursa (job #1415470) | Cod sursa (job #1506838) | Cod sursa (job #8313) | Cod sursa (job #1573713)
#include <iostream>
#include <fstream>
#include <vector>
#include <unordered_map>
using namespace std;
vector <long long> V;
long long NrSec(int k){
unordered_map <long long, long long> H;
long long s, nr, d;
s = nr = d = 0;
for (int i = 0; i < V.size(); ++i){
if (H[V[i]] == 0)
d++;
H[V[i]]++;
nr++;
if (d <= k)
s += nr;
else{
while (d > k){
if (H[V[i - nr + 1]] == 1)
d--;
H[V[i - nr + 1]]--;
nr--;
}
s += nr;
}
}
return s;
}
int main(){
ifstream f("secv5.in");
ofstream g("secv5.out");
int n, l, u;
f >> n >> l >> u;
for (int i = 0; i < n; ++i){
int x;
f >> x;
V.push_back(x);
}
long long x, y, s;
x = NrSec(u);
y = NrSec(l - 1);
s = x - y;
g << s;
f.close();
g.close();
return 0;
}