Pagini recente » Cod sursa (job #2201758) | Cod sursa (job #1285509) | Cod sursa (job #1232146) | Cod sursa (job #2672644) | Cod sursa (job #1722857)
#include <cstdio>
#define INF 2000000000
#include <algorithm>
using namespace std;
int v[5001],w[5001],p[5001];
int main()
{
FILE *fin=fopen ("secv.in","r");
FILE *fout=fopen ("secv.out","w");
int n,i,maxi,lsecv,j,mini,dist,poz;
fscanf (fin,"%d",&n);
for (i=1;i<=n;i++){
fscanf (fin,"%d",&v[i]);
w[i]=v[i];
}
sort (w+1,w+n+1);
dist=0;
for (i=1;i<=n;i++)
if (w[i]!=w[i-1])
dist++;
for (i=1;i<=n;i++){
maxi=0;
lsecv=0;
poz=0;
for (j=i-1;j>0;j--){
if (v[j]>maxi && v[j]<v[i]){
maxi=v[j];
poz=j;
lsecv=w[j]+i-j;
}
}
if (lsecv==0)
w[i]=1;
else
w[i]=lsecv;
p[i]=1+p[poz];
}
maxi=0;
mini=INF;
poz=0;
for (i=1;i<=n;i++){
if (v[i]>maxi && p[i]==dist){
maxi=v[i];
mini=w[i];
poz=i;
}
else if (v[i]==maxi && w[i]<mini && p[i]==dist){
mini=w[i];
poz=i;
}
}
if (poz!=0)
fprintf (fout,"%d",mini);
else fprintf (fout,"-1");
return 0;
}