对拍程序
在比赛中,可以写两个程序,一个是保证答案正确的暴力程序,另一个则是要提交的答案程序,
为了检验答案程序的正确性,可以生成随机数据,分别在两个程序上测试,检查输出答案是否一致
注:生成随机数据的程序要根据题目给出的数据格式,具体问题具体分析,这里只给出一个示例
#include<bits/stdc++.h>
using namespace std;
mt19937 rd((unsigned )new char);
int rr(int l, int r){
uniform_int_distribution<> d(l, r);
return d(rd);
}
int n = 5, q = 5;
int main(){
freopen("data.in" ,"w", stdout);
printf("%d\n", n);
for(int i = 1; i <= n; ++i){
for(int j = 1; j <= 3; ++j){
printf("%d ", rr(1, 10));
}
puts("");
}
printf("%d\n", q);
for(int i = 1; i <= q-1; ++i){
int opt = rr(1, 7), l = rr(1, n), r = rr(l, n), v = rr(1, 10);
printf("%d %d %d ", opt, l, r, v);
if(4 <= opt && opt <= 6){
printf("%d ", v);
}
puts("");
}
int opt = 7, l = rr(1, n), r = rr(l, n);
printf("%d %d %d\n", opt, l, r);
return 0;
}
接下来是对拍程序,用来比较两个程序的输出答案是否一致,其中data是随机数据生成器
#include<bits/stdc++.h>
#define s(x) system(#x)
using namespace std;
int main(){
while(1){
s(data);
s(c);
s(d);
if(s(diff 1.out 2.out)){
printf("WA");break;
}
}
}
#include<bits/stdc++.h>
#define s(x) system(#x)
using namespace std;
int main(){
while(1){
s(data);
s(c);
s(d);
if(s(fc 1.out 2.out)){
printf("WA");break;
}
}
}