Cod sursa(job #377527)

Utilizator ChallengeMurtaza Alexandru Challenge Data 25 decembrie 2009 02:05:34
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>

using namespace std;

const char InFile[]="scmax.in";
const char OutFile[]="scmax.out";
const long int NMax=100005;

long int n,v[NMax],start,finish,len,curr_len,curr_finish,curr_start;

int main(){
	ifstream fin(InFile);
	fin>>n;
	fin>>v[1];
	curr_start=1;
	curr_len=1;
	for(register int i=2;i<=n;++i){
		fin>>v[i];
		if(v[i]>v[i-1]){
			++curr_len;
			curr_finish=i;
		}else if(v[i]<v[i-1]){
			if(len<curr_len){
				len=curr_len;
				finish=curr_finish;
				start=curr_start;
			}
			curr_len=1;
			curr_start=i;
			curr_finish=i;
		}
	}
	fin.close();
	
	if(len<curr_len){
		len=curr_len;
		finish=curr_finish;
		start=curr_start;
	}
	
	ofstream fout(OutFile);
	fout<<len<<"\n";
	for(register int i=start;i<=finish;++i){
		if(v[i]!=v[i-1]){
			fout<<v[i]<<" ";
		}
	}
	fout.close();
	return 0;
}