Skip to content
Chen Ran edited this page May 12, 2015 · 4 revisions

数据库

problem表中isspj字段表明题目是否有Special Judge及Special Judge的语言:

  • isspj=0:没有Special Judge
  • isspj=1:C++的Special Judge
  • isspj=2:Java的Special Judge

SPJ存放位置

SPJ程序应当以源代码的形式存放在judger目录下面的spj目录,命令为[题号].cpp或者[题号].java

SPJ调用

评测器调用SPJ不附带任何参数,并向其标准输入(stdin)写入4行:

输入数据的文件名
标准输出的文件名
用户输出的文件名
用户源程序的文件名

SPJ应从标准输入(stdin)读入以上内容,然后根据需要自行打开及读取相应文件

SPJ返回

SPJ以0返回值结束表示用户答案正确,非0返回值结束表示用户答案错误

示例(BNU1082)

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

char IN_FILE[20];
char OUT_FILE[20];
char USER_ANS[20];
char USER_SRC[20];
int res,ures;

int Exit(int k)
{
    // Output only for debugging, not necessary
    if(k==1) printf("WA\n"); else printf("AC\n");
    exit(k);
}

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

    gets(IN_FILE);
    gets(OUT_FILE);
    gets(USER_ANS);
    // You can omit this if not needed
    gets(USER_SRC);
    FILE *fp=fopen(USER_ANS,"r");
    fscanf(fp,"%d",&ures);
    fclose(fp);
    srand((int)time(0));
    res=rand()%50+1;
    if (ures==res) Exit(0); else Exit(1);
    return 0;
}
Clone this wiki locally