Cod sursa(job #696962)

Utilizator antonioteoZait Teodor Antonio antonioteo Data 28 februarie 2012 21:14:40
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#define LL long long
#define MV 10004
using namespace std;
const char iname[] = "scmax.in";
const char oname[] = "scmax.out";
ifstream f(iname); ofstream g(oname);
int i, n, j, lmax_c, lmax=1, ind, ind_max;
LL v[MV];
LL best[MV];
LL sol[MV][MV];
int main(){
	f>>n; for( i = 1; i <= n; ++i ) f>>v[i];
	for( i = 1; i <= n; ++i ){
		lmax_c = 1; ind = 1;
		sol[i][ind] = v[i]; ++ind;
		for( j = i+1; j <= n; ++j )
			if( v[j] > v[i] && v[j] != v[j-1] ){
				sol[i][ind]=v[j];
				++ind;
				++lmax_c;
				v[i]=v[j];
			}
		if(lmax_c > lmax){ lmax = lmax_c; ind_max = i; }
		sol[i][0] = lmax_c;
	}
	g<<lmax<<'\n';
	for( i = 1; i <= sol[ind_max][0]; ++i )
		g<<sol[ind_max][i]<<' ';
	g<<'\n';
	return 0;
}