Cod sursa(job #415913)

Utilizator ClasianMunteanu Petre Clasian Data 11 martie 2010 22:30:13
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include<fstream.h>
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,max,pmax,mx,v[100000],d[100000],pd[100000],i,j;
int main()
{ f>>n;
  for(i=1;i<=n;i++) f>>v[i];pd[n]=1;
  for(i=n-1;i;i--)  { mx=0;
					  for(j=i+1;j<=n;j++)if(v[i]<v[j]&&pd[j]>mx)mx=pd[j],d[i]=j;
					  pd[i]=1+mx;
					  if(max<pd[i])max=pd[i],pmax=i;
					}
  g<<max<<'\n';
  while(pmax) { g<<v[pmax]<<' ';
				pmax=d[pmax];
			  }  
  f.close();
  g.close();
  return 0;
}