在Mac os下的对拍与Windows还是有些不同。以a+b为例,将下面4个cpp编译后的可执行文件放在同一个文件夹中,然后在终端中输入命令即可开始对拍;
正解(test):
#include <iostream>
int main() {
freopen("test.in","r",stdin);
freopen("test1.out","w",stdout);
int a,b;
std::cin>>a>>b;
std::cout << a+b << std::endl;
return 0;
}
暴力(test2):
#include <iostream>
int main() {
freopen("test.in","r",stdin);
freopen("test2.out","w",stdout);
int a,b,i;
std::cin>>a>>b;
for(i=1;i<=b;i++)
a+=1;
std::cout << a << std::endl;
return 0;
}
数据生成器(data):
#include <iostream>
#include<cstdlib>
#include<ctime>
int main() {
freopen("test.in","w",stdout);
srand(time(0));
std::cout << rand()%30000 <<' '<<rand()%30000<< std::endl;
return 0;
}
对拍程序(compare):
#include <iostream>
#include<cstdlib>
using namespace std;
int main() {
for(int i=1;i<=100;i++){
system("./data");
system("./test1");
system("./test2");
if(system("diff test1.out test2.out")){
cout<<"Wrong on test#:"<<i<<endl;break;
}
else cout<<"Test#"<<i<<": No problem!"<<endl;
}
return 0;
}
将4个文件放在同一个文件夹下后,在终端在中进入当前文件夹 ,然后输入./compare即可开始对拍;
以本机为例,输入 cd /Users/humveea6/CLionProjects/duipai(注意,cd之后要空格…,以及文件夹的名字里不要有空格,也不要有中文…)(command+option+c复制当前路径)
然后输入 ./compare即可;
效果如图:

2195



被折叠的 条评论
为什么被折叠?



