Nu aveti permisiuni pentru a descarca fisierul grader_test17.in
Cod sursa(job #3290383)
| Utilizator | Data | 30 martie 2025 16:22:10 | |
|---|---|---|---|
| Problema | Secventa 5 | Scor | 90 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.88 kb |
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream cin("secv5.in");
ofstream cout("secv5.out");
long long v[1048577];
unordered_map<int,int>vf1;
unordered_map<int,int>vf2;
int32_t main()
{
int n,l,u;
cin>>n>>l>>u;
long long lf=1,cnt=0,cf1=0,cf2=0;
for (int i=1; i<=n; i++)
{
cin>>v[i];
vf1[v[i]]++;
if (vf1[v[i]]==1) cnt++;
while (cnt>u)
{
vf1[v[lf]]--;
if (vf1[v[lf]]==0) cnt--;
lf++;
}
if (cnt<=u) cf1+=i-lf+1;
}
cnt=0,lf=1;
for (int i=1; i<=n; i++)
{
vf2[v[i]]++;
if (vf2[v[i]]==1) cnt++;
while (lf<=i&&cnt>=l)
{
vf2[v[lf]]--;
if (vf2[v[lf]]==0) cnt--;
lf++;
}
if (cnt<l) cf2+=i-lf+1;
}
cout<<cf1-cf2;
}
