Cod sursa(job #1982847)

Utilizator stef2003Bud Stefan stef2003 Data 20 mai 2017 13:43:17
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <stdio.h>

using namespace std;

int v[100000], vv[100000], v3[100000];
int main() {
  FILE *fin, *fout;
  int n, i, j, ma, am;
  fin=fopen("scmax.in","r");
  fout=fopen("scmax.out","w");
  fscanf(fin, "%d",&n);
  for(i=1;i<=n;i++)
    fscanf(fin, "%d",&v[i]);
  vv[1]=1;
  for(i=2;i<=n;i++) {
    ma=0;
    for(j=i-1;j>=1;j--)
      if(vv[j]>ma && v[i]>v[j])
        ma=vv[j];
    vv[i]=ma+1;
  }
    ma=0;
  for(i=1;i<=n;i++)
    if(vv[i]>ma) {
      ma=vv[i];
      am=i;
    }
  fprintf(fout, "%d\n",ma);
  i=1;
  v3[i]=v[am];
  am--;
  ma--;
  i++;
  for(;am>=1;am--)
    if(vv[am]==ma) {
      v3[i]=v[am];
      i++;
      ma--;
    }
  for(j=i-1;j>=1;j--)
    fprintf(fout, "%d ",v3[j]);
  fclose( fin );
  fclose( fout );
  return 0;
}