Cod sursa(job #3280003)
| Utilizator | Data | 25 februarie 2025 10:31:09 | |
|---|---|---|---|
| Problema | Secventa 5 | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.71 kb |
#include <fstream>
#include <map>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
int n, x, y, i, a[1500000];
int calcul(int val)
{
int l=1, cnt=0;
long long ans=0;
map <int, int> mp;
for(int r=1; r<=n; r++)
{
mp[a[r]]++;
if(mp[a[r]]==1)
{
cnt++;
while(cnt>val && l<=r)
{
mp[a[l]]--;
if(mp[a[l]]==0)
cnt--;
l++;
}
}
ans+=r-l+1;
}
return ans;
}
signed main()
{
fin>>n>>x>>y;
for(i=1; i<=n; i++)
fin>>a[i];
fout<<calcul(y)-calcul(x-1);
return 0;
}
