Свой чекер

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
Post Reply
Careless_angel
Posts:3
Joined:01 October 2014, 18:25
Свой чекер

Post by Careless_angel » 23 October 2014, 19:22

Мне нужно сделать собственный чекер. Что то на подобии cmp_bytes. Чекер должен сравнивать попарно буквы эталонной строки и введенной. (например: ABCD и BCAD. На своем месте только одна буква. Значить ставим 1 бал. Если все буквы совпали - ставим максимум)

Пробую переделать cmp_bytes. Подскажите, пожалуйста, правильно ли я все делаю, за что отвечает функция fatal_WA() и как мне скомпилировать этот код?

Code: Select all

#define NEED_CORR 1
#define NEED_INFO 0
#define NEED_TGZ  0
#include "checker.h"

#include "l10n_impl.h"

int checker_main(int argc, char **argv)
{
  char *corr_data = 0, *out_data = 0;
  size_t corr_size = 0, out_size = 0, i;
  int rez=0;

  checker_l10n_prepare();

  checker_read_file(1, &out_data, &out_size);
  checker_read_file(2, &corr_data, &corr_size);


  while (*corr_data && *out_data){
    if (*corr_data == *out_data) 
      ++rez;
    ++corr_data;
    ++out_data;
  
  }

  printf ("%d", rez);

  fatal_WA(_("%d: output: %d, correct: %d"), rez,
             ((unsigned char*)out_data)[i],
             ((unsigned char*)corr_data)[i]);

  checker_OK();
}

Post Reply