Pagini recente » Cod sursa (job #2089861) | Cod sursa (job #621007) | Cod sursa (job #1975617) | Cod sursa (job #2818519) | Cod sursa (job #3120389)
#include <bits/stdc++.h>
using namespace std;
ifstream f("secv5.in");
ofstream g("secv5.out");
int v[1100001],n;
int pairs(int k)
{unordered_map<int,int> mp;
int st=0,dr,sol=0,cnt=0;
for (dr=0;dr<n;dr++)
{
if (mp[v[dr]]==0)
cnt++;
mp[v[dr]]++;
while (cnt>k && st<=dr)
{
mp[v[st]]--;
if (mp[v[st]]==0)
cnt--;
st++;
}
sol+=dr-st+1;
}
return sol;
}
int main()
{int l,u,x;
f>>n>>l>>u;
for (int i=0;i<n;i++)
{
f>>v[i];
}
g<<pairs(u)-pairs(l-1);
}
/*set <long long> s;
set <long long>::iterator it;
int main()
{long long n,m,a,b,c,d,e,cnt=2,i,x,nr=0;
///citire date, creare set
f>>n>>m>>a>>b>>c>>d>>e;
for (i=1;i<=n;i++)
{
f>>x;
s.insert(x);
}
///verificare manuala pt a si b
it=s.find(a);
if (it!=s.end())
{
nr++;
s.erase(it);
}
//cout<<"OK"<<'\n';
it=s.find(b);
if (it!=s.end())
{
nr++;
s.erase(it);
}
///creeaza noul element, retine cele mai noi 2 elemente
//cout<<"OK"<<'\n';
while (!s.empty() && cnt!=m)
{
//cout<<"stuck?"<<'\n';
x=(a*c+b*d)%e;
it=s.find(x);
if (it!=s.end())
{
nr++;
s.erase(it);
}
a=b;
b=x;
cnt++;
}
g<<nr;
}
*/
/*unordered_map<int,int> mp;
unordered_map<int,int>::iterator itr;
int n,m;
int main()
{int x,y,i,j;
f>>n;
for (i=0;i<n;i++)
{
f>>m;
for (j=0;j<m;j++)
{
f>>x>>y;
if (mp.find(x)!=mp.end())
mp[x]+=y;
else
mp[x]=y;
}
}
g<<mp.size()<<'\n';
for (itr=mp.begin();itr!=mp.end();itr++)
{
g<<itr->first<<' '<<itr->second<<' ';
}
}*/