Cod sursa(job #520572)

Utilizator ionicaion ionica Data 9 ianuarie 2011 16:08:33
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream.h>
int a[100001],L[100001],u[100001],n;
void citire()
{int i;
 ifstream f("scmax.in");
 f>>n;  for(i=1;i<=n;i++)f>>a[i];
 f.close();
}
int main()
{int i,j,max,im;
 citire();
 L[n]=1;
 u[n]=0;
 for(i=n-1;i>=1;i--)
   {max=0;im=0;
    for(j=i+1;j<=n;j++)
       if(a[i]<a[j] && L[j]>max)
	     {max=L[j];
	      im=j;
	      }
    L[i]=max+1;
    u[i]=im;
    }
 // Determin lungimea subsirului maxim
 max=L[1];im=1;
 for(i=2;i<=n;i++)
    if(L[i]>max){max=L[i];
		     im=i;
		    }
ofstream g("scmax.out");
g<<max<<'\n';
 do{g<<a[im]<<' ';
    im=u[im];
    }while(im!=0);
 g<<'\n';
 return 0;
}