Pagini recente » Cod sursa (job #1374194) | Cod sursa (job #143292) | Cod sursa (job #1313143) | Cod sursa (job #778483) | Cod sursa (job #381165)
Cod sursa(job #381165)
#include <fstream>
#include <set>
using namespace std;
ifstream in("date.in");
ofstream out("date.out");
int n,x[1000],i,l[1000],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;
}