Pagini recente » Cod sursa (job #51469) | Cod sursa (job #2797321) | Cod sursa (job #1098754) | Istoria paginii schimbare-borland/ghid | Cod sursa (job #1788992)
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
const int NMAX = 1048579;
unordered_map<int, int> um;
int n, l, u, v[NMAX + 5], dist[NMAX + 5];
int main()
{
int i, elem, lf = 1, curr_dist, rez = 0, j = 1;
fin>>n>>l>>u;
for(i = 1; i <= n; ++i){
fin>>elem;
v[i] = elem;
if(um.count(v[i]) == 0){
dist[i] = dist[i - 1] + 1;
++um[v[i]];
}
else{
++um[v[i]];
dist[i] = dist[i-1];
}
}
for(i = 1; i <= n; ++i){
curr_dist = dist[i] - dist[lf] + 1;
if(curr_dist >= l && curr_dist <= u){
j = lf;
while(curr_dist >= l){
++rez;
++j;
curr_dist = dist[i] - dist[j] + 1;
}
}
else if(curr_dist > u){
while(curr_dist > l){
++lf;
curr_dist = dist[i] - dist[lf] + 1;
}
}
}
fout<<rez;
return 0;
}