首页 > 其他分享 >信息学竞赛中的对拍

信息学竞赛中的对拍

时间:2022-10-30 11:37:31浏览次数:33  
标签:std 信息学 竞赛 int me exe cpp txt

需要文件及其含义:

  • ​in.cpp​​:产生输入数据的源文件;
  • ​std.cpp​​:标程,即能产生正确数据但是会超时的源文件;
  • ​me.cpp​​:检查的程序,即用于提交但是不确定对不对(所以拿来对拍)的源文件;
  • ​run.bat​​:对拍脚本。

以下为一组示例:

run.bat

@echo off
:loop
in.exe > in.txt
me.exe < in.txt > me.txt
std.exe < in.txt > std.txt
fc me.txt std.txt
if not errorlevel 1 goto loop
pause

in.cpp

#include <bits/stdc++.h>
using namespace std;

mt19937 rng(time(NULL));

int random(int a, int b) {
return rng() % (b - a + 1) + a;
}

int main() {
int a = random(1, 100), b = random(1, 100);
cout << a << " " << b << endl;
return 0;
}

std.cpp

#include <bits/stdc++.h>
using namespace std;

int main() {
int a, b;
cin >> a >> b;
cout << a + b << endl;
return 0;
}

me.cpp

#include <bits/stdc++.h>
using namespace std;

int main() {
int a, b;
cin >> a >> b;
if (a + b > 130) cout << "hehe" << endl;
else cout << a + b << endl;
return 0;
}

编译三个源文件生成对应的目标文件(​​in.exe​​​、​​std.exe​​​、​​me.exe​​)然后运行对拍脚本就可以了。



标签:std,信息学,竞赛,int,me,exe,cpp,txt
From: https://blog.51cto.com/u_13536312/5807470

相关文章