Pagini recente » Cod sursa (job #2226013) | Cod sursa (job #2427451) | Cod sursa (job #1425104) | Cod sursa (job #3219323) | Cod sursa (job #900122)
Cod sursa(job #900122)
#include <fstream>
using namespace std;
ofstream out("scmax.out");
int pred[1000000],a[1000000],v[1000000],n,imax;
void citire()
{
int i;
ifstream in("scmax.in");
in>>n;
for(i=0;i<n;i++)
in>>a[i];
in.close();
}
void reconstitue(int i)
{
if(pred[i]+1) reconstitue(pred[i]);
out<<a[i]<<" ";
}
void prelucreaza()
{
int i,j;
v[0]=1;
imax=0;
pred[0]=-1;
for(i=1;i<n;i++)
{
v[i]=1;
pred[i]=-1;
for(j=0;j<i;j++)
if(a[j]<a[i] && v[j]+1>v[i])
{
v[i]=v[j]+1;
pred[i]=j;
}
if(v[i]>v[imax])imax=i;
}
}
void scrie()
{
out<<v[imax]<<endl;
reconstitue(imax);
}
int main()
{
citire();
prelucreaza();
scrie();
return 0;
}