对拍脚本

chmod +x duipai.sh

duipai.sh

#!/bin/bash
t=0;
while true; do
    let "t = $t + 1"
    printf $t
    printf ":\n"
    ./rand > rand.txt
    ./my < rand.txt > my.out
    ./brute < rand.txt > brute.out
     
    if diff my.out brute.out; then
        printf "\n"
    else
        printf "WA\n"
        cat rand.txt
        break
    fi
done

run.bat

:loop 
    @echo off   
    gen.exe > in.txt                       
    my.exe < in.txt  > myout.txt       
    std.exe < in.txt  > stdout.txt
    fc myout.txt stdout.txt                
if not errorlevel 1   goto loop           
pause

std.cpp

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

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

my.cpp

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

//这是一个错误程序
int main() {
  int a, b;
  cin >> a >>b;
  if (a > 130 && b > 130) {
    cout << a - b << endl;
  } else {
    cout << a + b << endl;
  }
  return 0;
}

gen.cpp

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

// 返回0到x-1之间的随机数
// rand()函数返回 0-32767之间的一个随机数
int get_rand(int x) {
  return rand() * rand() % x + 1;
}

//返回L 到 R之间的整数
int get_rand(int L, int R) {
  return rand() * rand() % (R-L+1) + L;
}

int main() {
  //初始化随机种子
  srand(time(0));
  int a, b;

  //生成一组随机数据
  a = get_rand(1, 200);
  b = get_rand(1, 200);
  cout << a << " " << b <<endl;
  return 0;
}