Pagini recente » Cod sursa (job #2963391) | Cod sursa (job #1449217) | Cod sursa (job #2221855) | Cod sursa (job #1118548) | Cod sursa (job #2448487)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream f("secv.in");
ofstream g("secv.out");
unordered_map <int,int> freq;
int n,a[5005],d[5005],t[5005],sol,nr,i,poz,maxim,j;
int main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>a[i];
if(freq.count(a[i])==0)
{
nr++;
}
freq[a[i]]++;
}
d[1]=1;
t[1]=1;
for(i=2;i<=n;i++)
{
maxim=0;
poz=i;
for(j=i-1;j>=1;j--)
{
if(a[j]<a[i] && d[j]>maxim)
{
maxim=d[j];
poz=j;
}
}
d[i]=maxim+1;
t[i]=poz;
}
sol=n+1;
for(i=1;i<=n;i++)
{
if(d[i]==nr)
{
poz=i;
while(poz!=t[poz])
{
poz=t[poz];
}
sol=min(sol,i-poz+1);
}
}
if(sol!=n+1)
g<<sol;
else
g<<-1;
return 0;
}