Pagini recente » Cod sursa (job #2572167) | Cod sursa (job #98075) | Cod sursa (job #887209) | Cod sursa (job #2650509) | Cod sursa (job #333453)
Cod sursa(job #333453)
#include<fstream>
#define dmax 100003
using namespace std;
ifstream in("scmax.in");
ofstream out("scmax.out");
unsigned int n,sir[dmax],din[dmax],ult[dmax],st,mx;
void getsir(int k,int i)
{ if(i<=din[st])
{ getsir(ult[k],i+1);
out<<sir[k]<<" ";
}
}
int main()
{ int i,j;
in>>n;
for(i=1;i<=n;i++)
in>>sir[i];
in.close();
for(i=1;i<=n;i++)
{ if(i==1)
din[i]=1;
else
{ din[i]=1;
for(j=1;j<i;j++)
{ if(sir[i]>sir[j])
{ if(din[j]+1>din[i])ult[i]=j;
din[i]=max(din[i],din[j]+1);
if(din[i]>mx)
{ st=i;
mx=din[i];
}
}
}
}
}
out<<din[st]<<'\n';
getsir(st,1);
out.close();
return 0;
}