Pagini recente » Cod sursa (job #537128) | Cod sursa (job #3180217) | Cod sursa (job #3191402) | Cod sursa (job #2584101) | Cod sursa (job #1089410)
#include<fstream>
#include<algorithm>
#include<map>
using namespace std;
ifstream f("secv.in");
ofstream g("secv.out");
int main(){
int i,n,j,a[5005]={},b[5005]={},c[5005]={},m=-1,pos=0,x=0,y=0,mm=6000;
map<int,int> t;
f>>n;
for(i=1; i<=n; ++i){
f>>a[i];
t[a[i]]++;
}
int val=t.size();
for(i=n; i>=1; --i){
if (b[i]==0) c[i]=i;
for(j=i-1; j>=1; --j){
if(a[i]>a[j]){
if(b[j] <= b[i]+1){
b[j]=b[i]+1;
c[j]=c[i];
}
}
}
if(b[i]>m || (b[i]==m && (c[i]-i) < mm )){
m=b[i];
mm=c[i]-i;
}
}
if(m+1==val){
/*
for(i=1; i<=n; ++i){
g<<b[i]<<" ";
}
*/
g<<mm+1;
}
else
g<<"-1";
return 0;
}