Pagini recente » Cod sursa (job #315505) | Cod sursa (job #2634194) | Cod sursa (job #975755) | Cod sursa (job #60701) | Cod sursa (job #1110000)
#include <fstream>
using namespace std;
FILE*fin;
ofstream fout("scmax.out");
int n,i,v[100003],pred[100003],best[100003],j,maxim,nrmax;
void afis(int k)
{
int x;
if(pred[k]!=-1)
{
x=pred[k];
afis(x);
fout<<v[x]<<" ";
}
}
int main()
{
fin=fopen("scmax.in","r");
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
fscanf(fin,"%d",&v[i]);
for(i=1;i<=n;i++)
{
best[i]=1;
pred[i]=-1;
for(j=1;j<i;j++)
if(v[j]<v[i]&&best[j]>=best[i])
{
pred[i]=j;
best[i]=best[j]+1;
if(best[i]>maxim)
{
maxim=best[i];
nrmax=i;
}
}
}
fout<<maxim<<'\n';
afis(nrmax);
fout<<v[nrmax]<<" ";
return 0;
}