Cod sursa(job #252429)

Utilizator MciprianMMciprianM MciprianM Data 4 februarie 2009 14:04:13
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include<fstream>
using namespace std;
int a[100000];
int main(){
  int i, n, l;
  ifstream f("scmax.in");
  ofstream g("scmax.out");
  f>>n;
  f>>a[0];
  if(n>1)
    f>>a[1];
  else{
    g<<"1\n"<<a[0]<<'\n';
    f.close(); g.close(); return 0;
  }
  if(n==2){
    if(a[0]<a[1]){
      g<<"2\n"<<a[0]<<' '<<a[1]<<'\n';
      f.close(); g.close(); return 0;
    }
    else{
      g<<"1\n"<<a[1]<<'\n';
      f.close(); g.close(); return 0;
    }
  }
  if(a[0]<a[1])  l=2;
  else l=1,a[0]=a[1];
  for(i=2;i<n;i++){
    f>>a[l];
    if(a[l]>a[l-1]) l++;
    else {
      if(l==1){
        a[0]=(a[1]<a[0])?a[1]:a[0];
      }
      else{
        if(a[l-2]<a[l])
          a[l-1]=a[l];
      }
    }
  }
  f.close();
  g<<l<<'\n';
  for(i=0;i<l;i++)
    g<<a[i]<<' ';
  g<<'\n';
  g.close();
  return 0;
}