Pagini recente » Cod sursa (job #2522150) | Cod sursa (job #2217609) | Cod sursa (job #79228) | Cod sursa (job #2520767) | Cod sursa (job #2310661)
#include <bits/stdc++.h>
using namespace std;
int v[5005];
int val[5005];
vector<int>poz[5005];
int main()
{
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
int n,i,nr,cnt=0;
scanf("%d",&n);
map<int,int>mp;
for(i=1;i<=n;i++)
{
scanf("%d",&v[i]);
if(mp.find(v[i])==mp.end())
mp[v[i]]=1,val[++cnt]=v[i];
}
sort(val+1,val+cnt+1);
for(i=1;i<=cnt;i++)
mp[val[i]]=i;
for(i=1;i<=n;i++)
{v[i]=mp[v[i]];poz[v[i]].push_back(i);}
int start=poz[1][0];
int ant=poz[1][0];
for(i=2;i<=cnt;i++)
{
int st=0,dr=poz[i].size()-1;
while(st<=dr)
{
int med=(st+dr)/2;
if(ant>poz[i][med])st=med+1;
else
dr=med-1;
}
ant=poz[i][st];
}
printf("%d\n",ant-start+1);
return 0;
}