Cod sursa(job #1697718)

Utilizator BarbumateiBarbu Matei Barbumatei Data 2 mai 2016 19:17:37
Problema Subsir crescator maximal Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.74 kb
#include <stdio.h>
#include <stdlib.h>
short int v[10000], u[10000], p[10000], q[10000], i, j, l, lmax;
FILE *fin, *fout;

void scmax(short int x){
  short int st=1, dr=l, mij;
  while(st<=dr){
    mij=(st+dr)/2;
    if(x<q[mij]) dr=mij-1;
    else st=mij+1;
  }
  l+=(st>l);
  q[st]=x;
  p[i]=st;
}

int main(){
  short int n, m;
  fin=fopen("interclasare.in", "r");
  fout=fopen("interclasare.out", "w");
  fscanf(fin, "%hi", &n);
  for(i=1; i<=n; i++){
    fscanf(fin, "%hi", &v[i]);
    scmax(v[i]);
  }
  lmax+=l; l=0;
  fscanf(fin, "%hi", &m);
  for(i=1; i<=m; i++){
    fscanf(fin, "%hi", &u[i]);
    scmax(u[i]);
  }
  lmax+=l;
  fprintf(fout, "%hi\n", lmax);
  fclose(fin);
  fclose(fout);
    return 0;
}