Cod sursa(job #1814893)
| Utilizator | Data | 24 noiembrie 2016 17:34:52 | |
|---|---|---|---|
| Problema | Secventa 5 | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.66 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
typedef long long LL;
unsigned int n, L, U, v[1000100];
unordered_map<unsigned int, int> H;
LL solve(int x)
{
H.clear();
LL id = 1, ans = 0;
for(int i=1; i<=n; ++i)
{
++H[v[i]];
while(H.size() > x)
{
--H[v[id]];
if(H[v[id]] == 0)
H.erase(v[id]);
++id;
}
ans += i-id+1;
}
return ans;
}
int main()
{
fin >> n >> L >> U;
for(int i=1; i<=n; ++i)
fin >> v[i];
fout << solve(U) - solve(L-1);
return 0;
}
