Pagini recente » Cod sursa (job #3196982) | horatiu11 | Cod sursa (job #2119523) | Cod sursa (job #7081) | Cod sursa (job #333452)
Cod sursa(job #333452)
#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];
}
}
}
}
}
/*for(i=1;i<=n;i++)
out<<sir[i]<<" ";
out<<'\n';
for(i=1;i<=n;i++)
out<<din[i]<<" ";
out<<'\n';
for(i=1;i<=n;i++)
out<<ult[i]<<" ";
out<<'\n'<<st;
out<<'\n'<<'\n';*/
out<<din[st]<<'\n';
getsir(st,1);
out.close();
return 0;
}