Cod sursa(job #3195626)

Utilizator comanandreiComan Andrei comanandrei Data 21 ianuarie 2024 13:18:34
Problema Subsir crescator maximal Scor 65
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <stdio.h>

#define MAXN 100000

int v[MAXN];
int lmax;

int cautbin(int e){
   int st, dr, mij;
   st=-1;
   dr=lmax;
   while(dr-st>1){
      mij=(st+dr)/2;
      if(e<=v[mij]){
         dr=mij;
      }
      else{
         st=mij;
      }
   }
   return dr;
}

int main()
{
   FILE *fin, *fout;
   int n, index, nr, pos;
   fin=fopen("scmax.in", "r");
   fscanf(fin, "%d", &n);
   lmax=0;
   for(index=0;index<n;index++){
      fscanf(fin, "%d", &nr);
      pos=cautbin(nr);
      v[pos]=nr;
      if(pos==lmax){
         lmax++;
      }
   }
   fclose(fin);
   fout=fopen("scmax.out", "w");
   fprintf(fout, "%d\n", lmax);
   for(index=0;index<lmax;index++){
      fprintf(fout, "%d ", v[index]);
   }
   fclose(fout);
   return 0;
}