Cod sursa(job #1561719)
| Utilizator | Data | 4 ianuarie 2016 14:29:50 | |
|---|---|---|---|
| Problema | Secventa 5 | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <bits/stdc++.h>
#define int64 long long
using namespace std;
ifstream in("secv5.in");
ofstream out("secv5.out");
unsigned a[1111111];
int n,x,y,k;
int64 solve(unsigned t)
{
unordered_map<unsigned,int> h;
int64 sol=0,last=1;
for(int i=1;i<=n;i++)
{
h[a[i]]++;
while(h.size()>t)
{
h[a[last]]--;
if(h[a[last]]==0)
h.erase(a[last]);
last++;
}
sol+=(i-last+1);
}
return sol;
}
int main()
{
in>>n>>x>>y;
for(int i=1;i<=n;i++)
in>>a[i];
out<<solve(y)-solve(x-1)<<'\n';
return 0;
}
