<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      fc | diff

      師承 Gon_Tata

      2025/10/29 16:00: 現在兼容 linux 文件輸入輸出了!
      2025/10/29 17:30: 現在兼容 Windows 文件輸入輸出了!
      2025/10/29 19:00: 現在兼容 linux 標準輸入輸出了!
      2025/10/29 20:30: 現在兼容 Windows 標準輸入輸出了!
      警告!!!!!!!!!data_outputfile 如果使用文件輸入輸出的話不要和你的輸入文件同名!!!!!!!!

      #include<bits/stdc++.h>
      using namespace std;
      const long long CHECK_TIMES=1e3; // 對拍次數
      const long long TIME_LIMIT=1000; // 時限 (ms)
      const long long STACK_MEMORY=256; //棧空間 (MB)
      
      string data_outputfile= // 用來存放數據的文件名,對拍結果不同的那組數據
      "in";
      
      string yours_code_cpp= // 你的代碼的文件名
      "a.cpp";
       
      string std_code_cpp= // std 的代碼的文件名
      "b.cpp";
       
      string data_maker_cpp= // 造數據的代碼的文件名
      "rand.cpp";
       
      string your_outputfile_out= // 你的代碼的輸出文件名
      "a.out";
       
      string std_outputfile_out= // std 的輸出文件名
      "b.out";
      
      vector<string> opt={ // 自定義的編譯選項
      	"-std=c++14 ", 
      	// "-Wall", // 顯示最多警告信息
      	"-w", // 不顯示任何警告
      	"-O2", // O2 優化
      	"-lm"
      };
      
      /*
       * you should modify this part to adapt your code
       * ----------------------------------------
      */
      
      void check(const string &a);
      void surprise();
      signed main()
      {
      	cout<<"Do you use freopen? If the answer is yes, please input 1 , else input 2: "<<endl;
      	string a;
      	for(int i=1;i<=15;i++)
      		cin>>a,check(a);
      	surprise();
      	return 0;
      }
      /* ---------------------------------------------------------- */
      
      #include<ctime>
      #if INT_MAX==RAND_MAX
      #include <unistd.h>
      #define Sleep(x) usleep(x*1000)
      #else
      #include <windows.h>
      #endif
      
      string data_exe="____DATA.exe";
      string your_exe="____YOURS.exe";
      string std_exe="____STD.exe";
      
      void diff_with_files_out();
      void diff_with_stdout();
      void do_diff_with_stdout_linux(bool f);
      void do_diff_with_stdout_windows(bool f);
      
      #define del_file(x) " rm "+x+" "
      #define make_exe(x,y) " g++ "+x+" "+options+" "+y+" "+Win_sta+" "
      #define data_ger(file) (f?"./":"")+file+" > "+data_outputfile+" "
      #define code_exe(file,out) (f?"./":"")+file+" < "+data_outputfile+" > "+out
      
      void check(const string &a)
      {
      	cout<<"Checking input... "<<endl;
      	if(a.size()==1)
      	{
      		if(a=="1") diff_with_files_out(),exit(0);
      		else if(a=="2") diff_with_stdout(),exit(0);
      		else cout<<"The input is illegal! You have no egg!!!\n";
      	}
      	else cout<<"The input is illegal! You have no egg!!!\n";
      }
      
      void diff_with_files_out()
      {	
      	cout<<"The input is legal!"<<endl;
      	cout<<"=============================================== "<<endl;
      	Sleep(300);
      	cout<<"initializing..."<<endl;
       
      	string Win_sta=" ";
      	int awa=1;
      	bool f=RAND_MAX==INT_MAX;
      	if(f) awa=system(("ulimit -s "+to_string(STACK_MEMORY*1024)).c_str());
      	else Win_sta+="-Wl,--stack="+(to_string(STACK_MEMORY*1024*1024));
      	assert(awa+1);
       
      	string your_code_operation="g++ "+yours_code_cpp;
      	string std_code_operation="g++ "+std_code_cpp;
      	string data_maker_operation="g++ "+data_maker_cpp;
      	for(const string &op:opt)
      	{
      		your_code_operation+=" "+op;
      		std_code_operation+=" "+op;
      		data_maker_operation+=" "+op;
      	}
      	your_code_operation+=" -o "+your_exe+" "+Win_sta;
      	std_code_operation+=" -o "+std_exe+" "+Win_sta;
      	data_maker_operation+=" -o "+data_exe+" "+Win_sta;
      
      	string comparsion_operation;
      	if(f) comparsion_operation="diff -Z "+your_outputfile_out+" "+std_outputfile_out+" ";
      	else comparsion_operation="fc "+your_outputfile_out+" "+std_outputfile_out+" ";
       
      	if(f)
      	{
      		data_exe="./"+data_exe;
      		your_exe="./"+your_exe;
      		std_exe="./"+std_exe;
      	}
      	data_exe+=" > "+data_outputfile+" ";
      	your_exe+=" < "+data_outputfile+" > "+your_outputfile_out+" ";
      	std_exe+=" < "+data_outputfile+" > "+std_outputfile_out+" ";
       
      	awa=system(your_code_operation.c_str());
      	awa=system(std_code_operation.c_str());
      	awa=system(data_maker_operation.c_str());
       
      	cout<<"initializing Succeeded!!!"<<endl;
      	cout<<"=============================================== "<<endl;
      	Sleep(200);
      	cout<<"Running..."<<endl;
      	Sleep(200);
       
      	for(signed i=1;i<=CHECK_TIMES;i++)
      	{	
      		printf("Running on test #%d,",i);
      		if(i<10)      printf("    ");
      		else if(i<100) printf("   ");
      		else if(i<1000) printf("  ");
      		else if(i<10000) printf(" ");
      		// fflush(stdout);
       
      		awa=system(data_exe.c_str());
       
      		std::chrono::milliseconds mbs = std::chrono::duration_cast< std::chrono::milliseconds >(std::chrono::system_clock::now().time_since_epoch());
      		long long bgt=mbs.count();
      		awa=system(your_exe.c_str());
      		std::chrono::milliseconds mes = std::chrono::duration_cast< std::chrono::milliseconds >(std::chrono::system_clock::now().time_since_epoch());
      		long long edt=mes.count();
      		long long dt=edt-bgt;
      		printf("time=%lldms",dt);
      		printf(", ");
      		if(dt<10)      printf("   ");
      		else if(dt<100) printf("  ");
      		else if(dt<1000) printf(" ");
      
      		if(!f) putchar('\n');
      		// fflush(stdout);
       
      		awa=system(std_exe.c_str());
      		bool flag=0;
      		if(dt>TIME_LIMIT) assert(!system("echo 'Time Limit Error !!!'")),flag=1;
      
      		if(system(comparsion_operation.c_str())) { printf("Wrong Answer! \n"); flag=1; }
      		else if(f) printf("Accepted");
      
      		if(flag) exit(0);
      		if(f)cout<<'\n';
      		else puts("Accepted\n-----------------------------------------------\n");
      		fflush(stdout);
      	}
      }
      
      void surprise()
      {
      	for(int i=1;i<=10000;i++)
      	cout<<"You have no egg!!!\n",Sleep(50);
      }
      
      void diff_with_stdout()
      {
      	cout<<"The input is legal!"<<endl;
      	cout<<"=============================================== "<<endl;
      	Sleep(300);
      	cout<<"initializing..."<<endl;
      
      	bool f=RAND_MAX==INT_MAX;
      
      	if(f) do_diff_with_stdout_linux(f);
      	else do_diff_with_stdout_windows(f);
      }
      
      void do_diff_with_stdout_linux(bool f)
      {
      	string Win_sta=" ";
      	int awa=1;
      	if(f) awa=system(("ulimit -s "+to_string(STACK_MEMORY*1024)).c_str());
      	else Win_sta+="-Wl,--stack="+(to_string(STACK_MEMORY*1024*1024));
      	assert(awa+1);
      	int cnt=0;
      
      	string your_code_operation="g++ "+yours_code_cpp;
      	string std_code_operation="g++ "+std_code_cpp;
      	string data_maker_operation="g++ "+data_maker_cpp;
      	for(const string &op:opt)
      	{
      		your_code_operation+=" "+op;
      		std_code_operation+=" "+op;
      		data_maker_operation+=" "+op;
      	}
      	your_code_operation+=" -o "+your_exe+" "+Win_sta;
      	std_code_operation+=" -o "+std_exe+" "+Win_sta;
      	data_maker_operation+=" -o "+data_exe+" "+Win_sta;
      
      	string e_rand,e_a,e_b;
      	e_rand=data_ger(data_exe);
      	e_a=code_exe(your_exe,your_outputfile_out);
      	e_b=code_exe(std_exe,std_outputfile_out);
      
      	string comparsion_operation;
      	if(f) comparsion_operation="diff -Z "+your_outputfile_out+" "+std_outputfile_out+" ";
      	else comparsion_operation="fc "+your_outputfile_out+" "+std_outputfile_out+" ";
      
      	awa=system(your_code_operation.c_str());
      	awa=system(std_code_operation.c_str());
      	awa=system(data_maker_operation.c_str());
      
      	cout<<"initializing Succeeded!!!"<<endl;
      	cout<<"=============================================== "<<endl;
      	Sleep(200);
      	cout<<"Running..."<<endl;
      	Sleep(200);
      	for(int kkk=1;kkk<=CHECK_TIMES;kkk++)
      	{
      		printf("#%d------->", ++cnt);
      		assert(!system(e_rand.c_str()));
      
      		std::chrono::milliseconds mbs = std::chrono::duration_cast< std::chrono::milliseconds >(std::chrono::system_clock::now().time_since_epoch());
      		long long bgt=mbs.count();
      		assert(!system(e_a.c_str()));
      		std::chrono::milliseconds mes = std::chrono::duration_cast< std::chrono::milliseconds >(std::chrono::system_clock::now().time_since_epoch());
      		long long edt=mes.count();
      		printf("time: %lld  ",edt-bgt);
      		if(edt-bgt>TIME_LIMIT) assert(!system("echo Time Limit Error")), exit(0);
      		
      		assert(!system(e_b.c_str()));
      
      		if(system(comparsion_operation.c_str())) assert(!system("echo Wrong Answer")), exit(0);
      		puts("Accepted");
      	}
      }
      
      void do_diff_with_stdout_windows(bool f)
      {
      	string Win_sta=" ";
      	int awa=1;
      	if(f) awa=system(("ulimit -s "+to_string(STACK_MEMORY*1024)).c_str());
      	else Win_sta+="-Wl,--stack="+(to_string(STACK_MEMORY*1024*1024));
      	assert(awa+1);
      	int cnt=0;
      
      	string your_code_operation="g++ "+yours_code_cpp;
      	string std_code_operation="g++ "+std_code_cpp;
      	string data_maker_operation="g++ "+data_maker_cpp;
      	for(const string &op:opt)
      	{
      		your_code_operation+=" "+op;
      		std_code_operation+=" "+op;
      		data_maker_operation+=" "+op;
      	}
      	your_code_operation+=" -o "+your_exe+" "+Win_sta;
      	std_code_operation+=" -o "+std_exe+" "+Win_sta;
      	data_maker_operation+=" -o "+data_exe+" "+Win_sta;
      
      	string comparsion_operation;
      	if(f) comparsion_operation="diff -Z "+your_outputfile_out+" "+std_outputfile_out+" ";
      	else comparsion_operation="fc "+your_outputfile_out+" "+std_outputfile_out+" ";
      
      	awa=system(your_code_operation.c_str());
      	awa=system(std_code_operation.c_str());
      	awa=system(data_maker_operation.c_str());
      
      	string e_rand,e_a,e_b;
      	e_rand=data_ger(data_exe);
      	e_a=code_exe(your_exe,your_outputfile_out);
      	e_b=code_exe(std_exe,std_outputfile_out);
      
      	cout<<"initializing Succeeded!!!"<<endl;
      	cout<<"=============================================== "<<endl;
      	Sleep(200);
      	cout<<"Running..."<<endl;
      	Sleep(200);
      	// return;
      	for(int kkk=1;kkk<=CHECK_TIMES;kkk++)
      	{
      		printf("#%d------->", ++cnt);
      		assert(!system(e_rand.c_str()));
      
      		std::chrono::milliseconds mbs = std::chrono::duration_cast< std::chrono::milliseconds >(std::chrono::system_clock::now().time_since_epoch());
      		long long bgt=mbs.count();
      		assert(!system(e_a.c_str()));
      		std::chrono::milliseconds mes = std::chrono::duration_cast< std::chrono::milliseconds >(std::chrono::system_clock::now().time_since_epoch());
      		long long edt=mes.count();
      		printf("time: %lld  \n",edt-bgt);
      		if(edt-bgt>TIME_LIMIT) assert(!system("echo Time Limit Error")), exit(0);
      
      		assert(!system(e_b.c_str()));
      
      		if(system(comparsion_operation.c_str())) assert(!system("echo Wrong Answer")), exit(0);
      		puts("Accepted\n-----------------------------------------------\n");
      	}
      }
      

      簡易版本:

      #include<bits/stdc++.h>
      
      using namespace std;
      
      const int N=1e4;
      
      // file name
      
      string yours_code=
      "T2.cpp";
      
      string std_code=
      "T2baoli.cpp";
      
      string data_maker=
      "data.cpp";
      
      string yours_file=
      "putin.out";
      
      string std_file=
      "baoli.out";
      
      signed main()
      {
          // #ifndef ONLINE_JUDGE
          // freopen("a.in","r",stdin);
          // freopen("a.out","w",stdout);
          // #endif
      	cout<<"Initlizing..."<<endl;
      
      	int awa=system("ulimit -s 262100");
      	assert(awa+1);
      
      	string s1="g++ "+yours_code+" -std=c++14  -O2 -lm -o YOURS";
      	string s2="g++ "+std_code+" -std=c++14  -O2 -lm -o STD";
      	string s3="g++ "+data_maker+" -std=c++14  -O2 -lm -o DATA";
      	string s4="diff -Z "+yours_file+" "+std_file;
      	char c[5][256]={};
      	for(int i=0;i<(int)s1.size();i++) c[1][i]=s1[i];
      	for(int i=0;i<(int)s2.size();i++) c[2][i]=s2[i];
      	for(int i=0;i<(int)s3.size();i++) c[3][i]=s3[i];
      	for(int i=0;i<(int)s4.size();i++) c[4][i]=s4[i];
      
      	awa=system(c[1]);
      	awa=system(c[2]);
      	awa=system(c[3]);
      
      	cout<<"Succeed!"<<endl;
      
      	for(int i=1;i<=N;i++)
      	{	
      		cout<<"Running on test #"<<i<<": ";
      		fflush(stdout);
      
      		awa=system("./DATA");
      		awa=system("./YOURS");
      		awa=system("./STD");
      		if(system(c[4])) {cout<<"Wrong Answer! "<<endl; break;}
      		else cout<<"Accepted"<<endl;
      	}
      
      
          return 0;
      }
      
      
      
      posted @ 2025-10-29 16:29  Wy_x  閱讀(75)  評論(10)    收藏  舉報
      主站蜘蛛池模板: 中国老熟妇自拍hd发布| 亚洲一二三四区中文字幕| 亚洲av无码成人精品区一区| 亚洲色最新高清AV网站| 忘忧草在线社区www中国中文| 国产一区二区三区av在线无码观看| 国产精品国产亚洲看不卡| 一区二区三区国产综合在线| 亚洲欧美人成人让影院| 少妇人妻偷人免费观看| 欧美亚洲一区二区三区在线| 不卡乱辈伦在线看中文字幕| 国产欧美久久一区二区三区| 久久久久影院色老大2020| 国产精品自拍实拍在线看| 亚洲色婷婷一区二区| 怡春院久久国语视频免费| 精品人妻一区二区| 亚洲午夜性猛春交XXXX| 洪泽县| 18禁动漫一区二区三区| 国产精品大全中文字幕| 人妻人人做人碰人人添| 亚洲a免费| 国语偷拍视频一区二区三区| 中国美女a级毛片| 日韩精品国产二区三区| 中日韩黄色基地一二三区| 野花香电视剧免费观看全集高清播放 | 免费a级黄毛片| 亚洲人成网站色7799| 亚洲中文字幕人成影院| 免费日韩av网在线观看| 亚洲AV永久中文无码精品综合| 麻豆一区二区中文字幕| 亚洲精品一区久久久久一品av | 最近日本免费观看高清视频| 9久9久热精品视频在线观看| 久久道精品一区二区三区| 亚洲香蕉av一区二区蜜桃| 人妻体内射精一区二区三四|