Pagini recente » Cod sursa (job #3211644) | Cod sursa (job #2380807) | Cod sursa (job #1325971) | infoarena - comunitate informatica, concursuri de programare | Cod sursa (job #571038)
Cod sursa(job #571038)
#include <fstream>
using namespace std;
int main(){
int v[100000];
int n;
ifstream in("scmax.in");
ofstream out("scmax.out");
int i,j,max;
int sol[100000];
in>>n;
for(i=0;i<n;i++)
in>>v[i];
max=0;
for(i=0;i<n;i++){
sol[i]=0;
for(j=0;j<i;j++)
if(v[i]>v[j]&&sol[i]<sol[j])
sol[i]=sol[j];
sol[i]++;
if(max<sol[i])
max = sol[i];
for(i=0;i<n;i++)
if(sol[i]==max)
break;
int vct[100000];
out<<max<<endl;
max=0;
vct[max++]=v[i];
while(sol[i]>1){
for(j=0;j<i;j++)
if(v[i]>v[j]&&sol[j]+1==sol[i])
break;
i=j;
vct[max++]=v[i];
}
for(i=max-1;i>=0;i--)
out<<vct[i]<<" ";
out<<endl;
return 0;
}