Pagini recente » Cod sursa (job #1849211) | Cod sursa (job #3189651) | Cod sursa (job #762629) | Cod sursa (job #1456573) | Cod sursa (job #2906348)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
void afis_sir(int nr[], int dp[], int pre[], int p)
{
if(pre[p]!=-1)
{ afis_sir(nr, dp, pre, pre[p]);
fout<<nr[pre[p]]<<" ";
}
}
int main()
{
int n, nr[100001], dp[100001], pre[100001], dpmax=0, st;
fin>>n;
fin>>nr[1];
dp[1]=1;
pre[1]=-1;
st=1;
for(int i=2; i<=n; i++)
{
pre[i]=-1;
fin>>nr[i];
dp[i]=1;
for(int j=1; j<i; j++)
{
if(dp[i]<dp[j]+1&& nr[j]<nr[i])
{
dp[i]=dp[j]+1;
pre[i]=j;
}
}
if(dp[i]>dpmax)
{
dpmax=dp[i];
st=i;}
}
fout<<dpmax<<endl;
afis_sir(nr, dp, pre, st);
fout<<nr[st];
return 0;
}