Pagini recente » Cod sursa (job #312683) | Cod sursa (job #1255032) | Cod sursa (job #583472) | Cod sursa (job #3190312) | Cod sursa (job #396688)
Cod sursa(job #396688)
#include<fstream>
#include<algorithm>
using namespace std;
ofstream fout("scmax.out");
const int nmax=100005;
int best[nmax],v[nmax],poz[nmax];
int n;
void citire ()
{
int i;
ifstream fin("scmax.in");
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
fin.close ();
}
void det_poz (int k)
{
fout<<v[k]<<' ';
if(poz[k]!=k) det_poz(poz[k]);
}
int main ()
{
int i,j;
citire();
best[1]=1;
poz[1]=1;
int maxim=1,p=1,t=0;
for(i=2;i<=n;i++)
{
best[i]=1;poz[i]=i;
for(j=1;j<=i;j++)
if(v[i]>v[j] && best[i]<best[j]+1) { best[i]=best[j]+1;poz[i]=j; }
if(maxim<best[i]) {maxim=best[i];p=i;}
}
fout<<maxim<<"\n";
while(p!=poz[p])
{
best[++t]=v[p];
p=poz[p];
}
best[++t]=v[p];
for(i=t;i>=1;i--)
fout<<best[i]<<' ';
fout.close ();
}