Pagini recente » Cod sursa (job #2340097) | Cod sursa (job #2161202) | Cod sursa (job #709) | Cod sursa (job #69927) | Cod sursa (job #381167)
Cod sursa(job #381167)
#include <fstream>
#include <set>
using namespace std;
ifstream in("secv.in");
ofstream out("secv.out");
int n,x[5001],i,l[5001],p,minim,j;
set<int> a;
set<int>::iterator it;
int main()
{
in>>n;
for(i=1; i<=n; i++)
{
in>>x[i];
a.insert(x[i]);
}
for(i=1;i<=n; i++)
if(x[i] == *a.begin())
l[i] = 1;
else
{
it = a.find(x[i]);
it--;
p=0;
for(j=1; j<i; j++)
if(x[j] == *it && l[j]!=n+1 && (p==0 || l[j]<l[p]))
p=j;
if(p!=0)
l[i]=l[p]+(i-p);
else
l[i]=n+1;
}
minim = -1;
for(i=1; i<=n; i++)
if(x[i] == *a.rbegin() && (minim == -1 || minim > l[i]))
minim = l[i];
out<<minim;
return 0;
}