Pagini recente » Rating Rosca Dinu Cristian (dinurosca03) | Cod sursa (job #430654) | Cod sursa (job #1631795) | Cod sursa (job #3277986) | Cod sursa (job #2304542)
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int N,v[100010],L[100010],T[100010],maxim,poz,i,j,pozmax,x;
void afisare(int pozz){
if(T[pozz])
afisare(T[pozz]);
fout<<v[pozz]<<" ";
}
int main(){
fin>>N;
for(i=1;i<=N;i++){
fin>>v[i];
}
///varianta n^2
L[1]=1;
for(i=2;i<=N;i++){
maxim=-1;
for(j=1;j<i;j++)
if(L[j]>maxim && v[j]<v[i]){
maxim=L[j];
poz=j;
}
if(maxim!=-1){
L[i]=maxim+1;
T[i]=poz;
}
else{
L[i]=1;
T[i]=0;
}
}
//for(i=1;i<=N;i++)
// fout<<L[i]<<" ";
maxim=-1;
for(i=1;i<=N;i++)
if(L[i]>maxim){
maxim=L[i];
pozmax=i;
}
//x=v[pozmax];
fout<<maxim<<"\n";
afisare(pozmax);
return 0;
}