Pagini recente » Cod sursa (job #2241997) | Cod sursa (job #603613) | Cod sursa (job #2604128) | Cod sursa (job #1864420) | Cod sursa (job #2105519)
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n, i, v[100003], lg[100003], Max, u[100003], j;
int main()
{
f>>n;
for(i=1; i<=n; i++)
f>>v[i];
lg[n] = 1;
for(i=n-1; i>=1; i--) {
Max = 0;
for(j=i+1; j<=n; j++)
if(lg[j]>Max and v[j]>v[i]) Max = lg[j], u[i] = j;
lg[i] = Max+1;
} Max = 0;
for(i=1; i<=n; i++)
if(lg[i]>Max) Max=lg[i], j = i;
g<<Max<<'\n';
while(j) {
g<<v[j]<<' ';
j = u[j];
}
return 0;
}