Pagini recente » Cod sursa (job #2705455) | Cod sursa (job #2705459) | Cod sursa (job #305807) | Cod sursa (job #2459157) | Cod sursa (job #2280004)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("scmax.in") ;
ofstream fout ("scmax.out") ;
int main()
{
int n , sir[100000] ;
fin>>n ;
for(int i=0 ; i<n ; i++)
fin>>sir[i] ;
int e[100000] , p[100000] , ma=0 ;
p[0]=0 ;
e[0]=sir[0] ;
for(int i=1 ; i<n ; i++)
if(e[ma]<sir[i])
{
ma++ ;
p[i]=ma ;
e[p[i]]=sir[i] ;
}
else
{
int k=ma ;
while(sir[i]>e[k])
k-- ;
e[k]=sir[i] ;
p[i]=k ;
}
fout<<ma+1<<"\n" ;
for(int i=0 ; i<=ma ; i++)
fout<<e[i]<<" " ;
return 0;
}