Pagini recente » Cod sursa (job #1470078) | Cod sursa (job #2538415) | Cod sursa (job #2406999) | Cod sursa (job #151803) | Cod sursa (job #2478360)
#include <bits/stdc++.h>
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int n,a[100100],best[100100],p[100100],Max,last;
void afisare(int poz)
{
if(poz==p[poz]) {
out<<a[poz]<<" ";
return;
}
afisare(p[poz]);
out<<a[poz]<<" ";
}
int main()
{
in>>n;
for(int i=1;i<=n;i++) {
in>>a[i];
best[i]=1;
p[i]=i;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<i;j++)
{
if(a[j]<a[i]&&best[j]+1>best[i])
{
best[i]=best[j]+1;
p[i]=j;
}
}
if(best[i]>Max)
{
Max=best[i];
last=i;
}
}
out<<Max<<'\n';
afisare(last);
return 0;
}