Pagini recente » Cod sursa (job #133540) | Cod sursa (job #573814) | Cod sursa (job #2940856) | Cod sursa (job #536633) | Cod sursa (job #461938)
Cod sursa(job #461938)
#include<fstream>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
const int N=100010;
int v[N], lung[N],pred[N],n;
int read_solve()
{
int i,j,m=-1,k,q=1;
in>>n;
for(i=1;i<=n;i++)
in>>v[i];
for(i=1;i<=n;i++)
{
k=0;
m=0;
for(j=1;j<i;j++)
if(v[j]<v[i] && lung[j]>m)
{
m=lung[j];
k=j;
}
lung[i]=1+m;
pred[i]=k;
}
for(i=1;i<=n;i++)
if(lung[i]>lung[q])
q=i;
return q;
}
void afis(int poz)
{
if(poz==0)
return;
afis(pred[poz]);
out<<v[poz]<<" ";
}
int main()
{
int p;
p=read_solve();
out<<lung[p]<<"\n";
afis(p);
return 0;
}