SepicalJudge

原文:http://www.cnblogs.com/chouti/p/5752819.html

Special Judge:当正确的输出结果不唯一的时候需要的自定义校验器

首先有个框架

#include<fstream>
ifstream fin,fout,fstd
ofstream fscore,freport;
double Judge(){
    
}
int main(int argc,char *argv[]) {
    //put something to fstreams...
    
    //Judge&output report 
    
    //close files
    return 0
}

然后这里只写lemon的

所有的都从argv[]里面读入

argv[1]:输入文件

argv[2]:选手输出文件

argv[3]:标准输出文件

argv[4]:单个测试点分值

argv[5]:输出最终得分的文件

argv[6]:输出错误报告的文件

然后lemon的spj就大概这样写

int main(int argc,char *argv[]){
    fin.open(argv[1]);
    fout.open(argv[2]);
    fstd.open(argv[3]);
    fscore.open(argv[5]);
    freport.open(argv[6]);
    
    int score=atoi(argv[4]);
    fscore<<score*Judge()<<endl;
    
    fin.close();
    fout.close();
    fstd.close();
    fscore.close();
    freport.close();
    return 0;
}

有时间试试~

原文地址:https://www.cnblogs.com/YJinpeng/p/6010833.html