Pagini recente » Cod sursa (job #1259541) | Cod sursa (job #1593534) | Cod sursa (job #2934844) | Cod sursa (job #1890946) | Cod sursa (job #2284574)
#include <iostream>
#include <fstream>
#define nmax 100005
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,sir[nmax],dp[nmax],anterior[nmax],i_max=0,dp_max,rez[nmax];
int main(){
f>>n>>sir[1];
dp[1]=1;
i_max=1;
for(int i=2;i<=n;i++){
f>>sir[i];
dp_max=0;
dp[i]=1;
for(int j=1;j<i;j++){
if(sir[j]<sir[i]&&dp[j]>dp_max){
dp[i]=dp[j]+1;
anterior[i]=j;
}
}
if(dp[i_max]<dp[i]){
i_max=i;
}
}
g<<dp[i_max]<<'\n';
int j=i_max;
for(int i=1;i<=dp[i_max];i++){
rez[i]=sir[j];
j=anterior[j];
}
for(int i=dp[i_max];i>=1;i--){
g<<rez[i]<<' ';
}
f.close();
g.close();
}