Pagini recente » Cod sursa (job #1242586) | Cod sursa (job #493638) | Cod sursa (job #2316608) | Cod sursa (job #3250607) | Cod sursa (job #3271031)
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream in("secv5.in");
ofstream out("secv5.out");
int n, x, y;
int v[1050585];
int solve(int nr)
{
int st = 1;
int dr = 1;
int cnt = 0;
int ans = 0;
unordered_map<int, int> um;
while(dr <= n)
{
if(um[v[dr]] == 0)
{
cnt++;
}
um[v[dr]]++;
while(cnt > nr)
{
um[v[st]]--;
if(um[v[st]] == 0)
{
cnt--;
}
st++;
}
//out<<st<<" "<<dr<<'\n';
ans += (dr - st + 1);
dr++;
}
return ans;
}
int main()
{
in>>n>>x>>y;
for(int i = 1; i<=n; i++)
{
in>>v[i];
}
out<<solve(y) - solve(x - 1);
return 0;
}