Pagini recente » Cod sursa (job #908150) | Cod sursa (job #1130171) | Cod sursa (job #419847) | Cod sursa (job #1416025) | Cod sursa (job #1342095)
#include <fstream>
#define NMax 100001
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
int v[NMax],T[NMax],A[NMax];
int main()
{
int n,m,i,j,poz,maxim=0;
in >> n;
for(i = 1; i <= n; ++ i)
in >> v[i];
for(i = 1; i <= n; ++ i)
{
T[i] = 1;
for(j = 1; j <= i-1; ++ j)
{
if(v[i]>v[j])
T[i] = max(T[i], T[j]+1);
}
}
for(i = 1; i <= n; ++ i)
if(maxim<T[i])
{
maxim = T[i];
poz = i;
}
out<<maxim<<endl;
while(T[poz]!=1)
{
A[T[poz]]=v[poz];
for(i = 1; i <= n; ++ i)
{
if(T[i]+1==T[poz] && v[i] < v[poz])
{
poz = i;
break;
}
}
}
A[T[poz]]=v[poz];
for(i = 1; i <= maxim; i ++)
out<<A[i]<<" ";
return 0;
}