ACM常用对拍程序

  • 建立cpp文件,放置标程,执行后产生exe可执行文件 (std.cpp -> std.exe )
#include<bits/stdc++.h>
using namespace std;
int main(){
    int a, b;
    cin >> a >>b;
    srand(time(NULL));
    cout << a<<" "<<b<<endl;//输出输入的数据,便于知道哪组数据出错了
    cout << a+b + rand()%2<<endl;
    return 0;
}

  • 建立cpp文件,放置自己的代码, 运行后生成exe可执行文件 ( my.cpp->my.exe )
#include<bits/stdc++.h>
#define rep(i, a, b) for(i=a; i<=b; ++i)
using namespace std;
int main(){
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%d %d\n", a, b);
    printf("%d\n", a+b);
    return 0;
}
  • 建立cpp文件,放置数据生成代码, 运行后生成exe可执行文件 ( data.cpp->data.exe )
#include<bits/stdc++.h>
using namespace std;
stringstream ss;
int main(int argc, char *argv[]){
    int seed = time(NULL);
    if(argv){
        ss.clear();
        ss << argv[1];
        ss >> seed;
    }
    int a, b;
    srand(seed);
    a = rand()%100;
    b = rand()%100;
    printf("%d %d\n", a, b);
    return 0;
}
  • 将上述三个exe文件(std.exe,my.exe,data.exe)放置在同一个文件夹, 新建一个txt文件,写入下述代码, 然后将文件后缀.txt改成.bat (例如test.txt 改成 test.bat), 双击运行该bat文件。生成的数据可在同一目录下的in.txt中查看,程序会执行到同一份数据,std.exe和my.exe执行结果不相同为止.
:again
    data.exe %random% > input.txt
    my.exe < input.txt > my.txt
    std.exe < input.txt > std.txt
    fc my.txt std.txt
    if not errorlevel 1 goto again
pause
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值