Mai intai trebuie sa te autentifici.
Cod sursa(job #1573840)
Utilizator | Data | 19 ianuarie 2016 23:10:37 | |
---|---|---|---|
Problema | Secventa 5 | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.73 kb |
#include <iostream>
#include <fstream>
#include <vector>
#include <unordered_map>
#define maxN 1<<20 + 5
using namespace std;
unsigned int V[maxN];
int n;
long long NrSec(int k){
unordered_map <unsigned int, int> H;
long long s;
int nr, d;
s = nr = d = 0;
for (int i = 0; i < n; ++i){
H[V[i]]++;
if (H[V[i]] == 1)
d++;
while (d > k){
if (H[V[nr]] == 1)
d--;
H[V[nr]]--;
nr++;
}
s += i - nr + 1;
}
return s;
}
int main(){
ifstream f("secv5.in");
ofstream g("secv5.out");
int l, u;
f >> n >> l >> u;
for (int i = 0; i < n; ++i)
f >> V[i];
long long x, y;
x = NrSec(u);
y = NrSec(l - 1);
g << x - y;
f.close();
g.close();
return 0;
}