Cod sursa(job #1867720)

Utilizator XIIICristian Boicu XIII Data 4 februarie 2017 11:54:26
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <bits/stdc++.h>
using namespace std;
long v[100002],m[100002],i,j,k,n,maxx,c,drum[100010],b[100002];
int main(){
	ifstream cin("scmax.in");
	ofstream cout("scmax.out");
	cin>>n;
	for (i=1;i<=n;i++){
	
	cin>>v[i];
	m[i]=1;
}
	maxx=-1;
	int maxpos=-1;
	for (i=2;i<=n;i++)
{     
          	for (j=1;j<=i-1;j++){
          		
			  if (v[i]>v[j]){
	
    		if (m[i]<m[j]+1){
    			m[i]=m[j]+1;
    			drum[i]=j;
			}
			
			
			}
   
    }
		if (m[i]>maxx) {
			maxx=m[i];
			maxpos=i;
		}
//    maxx=max(maxx,m[i]);
}
	cout<<maxx<<endl;
	i=1;
	for (;maxpos;maxpos=drum[maxpos])	{
	b[i]=v[maxpos];
	i++;
}
for (i=maxx;i>=1;i--)
cout<<b[i]<<" ";
	return 0;
}