对拍

Checker (Windows)

//chk.cpp

#include <bits/stdc++.h>
#include <windows.h>

using namespace std;

typedef long long ll;

void SetColorAndBackground(int ForgC, int BackC) {
	WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
}

int main() {
	

	system("@echo off");
	//切换到工作目录
	system("cd D:\\OI");
	system("cd ..//..//..//..//..//..//..//..//..//");
	system("D:");
	//一个cmd特性(还是我的cmd有问题?),见文尾
//	if (!system("fc>nul 2>nul test.out true.out"))
//		cout << "Yes!";
//	else cout << "No!";
	int cnt = 0;
	int flg = 0;
	string True;
	cout << "True Program Name:";
	cin >> True;
	string __STD;
	cout << "Need Check Program Name:";
	cin >> __STD;
	True += ".exe < .in > true.out";
	__STD += ".exe < .in > std.out";
	int k = 100;
	while (cnt < k) {
		system("gen > .in");
		system(True.c_str());
		system(__STD.c_str());
		if (!system("fc>nul 2>nul /w true.out std.out")) {
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
			cout << "Accepted!\n";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
		}else {
			flg = 1;
			string tmp = "";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
			cout << "WA on #" << cnt + 1 << '\n' << "***** .IN\n";
			system("type .in");
			cout << '\n';
			system("fc /w true.out std.out");
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
			return 0;
		}
		cnt ++;
	}
	if (!flg) {
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
		cout << "Conguatulations! 100pts!!!";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
	}
}

Genarator

//gen.cpp
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

const int N = 70;

mt19937 rd(chrono::system_clock::now().time_since_epoch().count());

int main() {
	//rd() % N来生成一个随机数
    return 0;
}

true.cpp 存放暴力或题解

std.cpp 自己的程序

流程:

  • 根据题目要求编写数据生成器Genarator,并在 true.cpp 中编写暴力或粘贴题解。
  • 编译true.cpp 和 Genarator(不运行)。
  • 编译运行你的程序并确保通过样例。
  • 编译运行 chk.cpp 并依次输入你程序的名字和 Genarator 的名字。
  • 改变 chk.cppk 的数值来控制需要测评的数据数。

cmd特性

image

posted @ 2024-08-24 12:01  lyfandlzf  阅读(1)  评论(0编辑  收藏  举报