#include <stdio.h>
#include <stdlib.h>

int n;
int width, height;
int **ret;

void leArquivo( void );
void criaArquivo();

int main( int argc, char** argv ){

  leArquivo();
  criaArquivo();

  return 0;
}

void leArquivo( void ) {
  int i;
  FILE *arq;

  arq = fopen("solution.txt", "r");
  if( arq==NULL ) {
    printf("Erro ao abrir o arquivo\n");
    exit(0);
  }

  fscanf( arq, "%d %d %d", &n, &width, &height );

  ret = (int**) malloc( n*sizeof(int*) );
  if( ret==NULL ) {
    printf("Erro na alocação de memória\n");
    exit(0);
  }
  for( i=0; i<n; i++ ) {
    ret[i] = (int*) malloc( 4*sizeof(int) );
    if( ret[i]==NULL ) {
      printf("Erro na alocação de memória\n");
      exit(0);
    }
  }

  for( i=0; i<n; i++ )
    fscanf( arq, "%d %d %d %d", &ret[i][0], &ret[i][1], &ret[i][2], &ret[i][3] );
}

void criaArquivo( void ) {
  int i;
  FILE *arq;

  arq = fopen("solution.mp", "w");
  if( arq==NULL ) {
    printf("Erro ao abrir o arquivo\n");
    exit(0);
  }

  fprintf( arq, "beginfig(1);\n" );
  fprintf( arq, "u=%.2fcm;\n", 13.0/width );

  // retângulo maior
  fprintf( arq, "fill (%du,%du)--(%du,%du)--(%du,%du)--(%du,%du)--cycle withcolor 0.2black + 0.7white;\n",
           ret[0][0], ret[0][1], ret[0][0], ret[0][3],
           ret[0][2], ret[0][3], ret[0][2], ret[0][1] );
  fprintf( arq, "draw (%du,%du)--(%du,%du)--(%du,%du)--(%du,%du)--cycle;\n",
           ret[0][0], ret[0][1], ret[0][0], ret[0][3],
           ret[0][2], ret[0][3], ret[0][2], ret[0][1] );

  // desenhos os retângulos pequenos
  for( i=1; i<n; i++ ) {
    fprintf( arq, "fill (%du,%du)--(%du,%du)--(%du,%du)--(%du,%du)--cycle withcolor white;\n",
             ret[i][0], ret[i][1], ret[i][0], ret[i][3],
             ret[i][2], ret[i][3], ret[i][2], ret[i][1] );
    fprintf( arq, "draw (%du,%du)--(%du,%du)--(%du,%du)--(%du,%du)--cycle;\n",
             ret[i][0], ret[i][1], ret[i][0], ret[i][3],
             ret[i][2], ret[i][3], ret[i][2], ret[i][1] );
  }

  fprintf( arq, "endfig;\n" );
  fprintf( arq, "end;\n" );

  fclose( arq );
}
