Pagini recente » Cod sursa (job #2874777) | Cod sursa (job #2883696) | Cod sursa (job #314053) | Cod sursa (job #2345589) | Cod sursa (job #361361)
Cod sursa(job #361361)
#include <iostream>
#include <fstream>
using namespace std;
int const maxn = 5000;
typedef int A1 [maxn];
A1 A,L,I;
int
main ( ) {
ifstream is ( "subsir2.in" );
ofstream os ( "subsir2.out" );
int n,i,k,l,a,b,y;
is >> n;
for ( i=0; n>i; ++i ) { is >> A[i]; }
for ( i=n-1; 0<=i; --i ) {
l=0;a=A[i]; b=0; y=-1;
for ( k=1+i; n>k; ++k )
if ( a<=A[k] )
if ( (l<L[k]) || ( (l==L[k]) && (A[k]<=b) ) ) {
l=L[k]; b=A[k]; y=k;
}
L[i]=1+l; I[i]=y;
}
l=L[1]; y=1;
for ( i=0; n>i; ++i )
if ( l<=L[i] ) { l=L[i]; y=i; }
os << l << endl; os << 1+y;
for ( i=1; i<l; ++i ) {
y=I[y]; os << ' ' << 1+y;
}
os << endl;
return 0;
}