zoukankan      html  css  js  c++  java
  • windows下的对拍用小玩意

      1 #include <cstdio>
      2 #include <fstream>
      3 #include <iostream>
      4 
      5 #include <cstdlib>
      6 #include <cmath>
      7 #include <cstring>
      8 #include <algorithm>
      9 
     10 typedef long long int ll;
     11 typedef double db;
     12 
     13 #define DBG printf("*")
     14 
     15 using namespace std;
     16 
     17 int opt,ods;
     18 char c[10000000]; //accept less than 9.5M file
     19 char s[10000000];
     20 int ap,sp;
     21 
     22 int main()
     23 {
     24     //printf("output situation?\n");
     25     //scanf("%d",&opt);
     26     opt=1;
     27     if(opt)
     28     {
     29         printf("output details?\n");
     30         scanf("%d",&ods);
     31     }
     32     
     33     int T;
     34     printf("times tested:\n");
     35     scanf("%d",&T);
     36     
     37     int tot=0;
     38     
     39     bool checked=true;
     40     int kc,ks;
     41     int tg=0,tx=0,ty=0; int dt=0;
     42         
     43     do
     44     {
     45         int T=clock();
     46         if(system("G.exe")){ printf("genurator broke! exit."); return 0; }
     47         dt=clock()-T;
     48         if(opt) printf("gen run out. time use:%dms.\n",dt);
     49         tg+=dt;
     50         
     51         
     52         //read program a
     53         T=clock();
     54         if(system("x.exe")){ printf("x broke! exit."); return 0; }
     55         dt=clock()-T;
     56         if(opt) printf("x run out. time use:%dms.\n",dt);
     57         tx+=dt;
     58         
     59         freopen("out.txt","r",stdin);
     60         ap=0;
     61         while(!feof(stdin)) c[ap++]=getchar();
     62         fclose(stdin);
     63         
     64         //read program b
     65         T=clock();
     66         if(system("y.exe")){ printf("y broke! exit."); return 0; }
     67         dt=clock()-T;
     68         if(opt) printf("y run out. time use:%dms.\n",dt);
     69         ty+=dt;
     70         
     71         freopen("out.txt","r",stdin);
     72         sp=0;
     73         while(!feof(stdin)) s[sp++]=getchar();
     74         fclose(stdin);
     75         
     76         
     77         //compare
     78         if(opt) printf("start compare...\n");
     79         
     80         if(ods)
     81         {
     82             for(int i=0;i<min(10,ap);i++) cout<<c[i]; cout<<endl; 
     83             for(int i=0;i<min(10,sp);i++) cout<<s[i]; cout<<endl;
     84         }
     85         
     86         kc=0,ks=0;
     87         
     88         int it=0;
     89         while(kc!=ap || ks!=sp)
     90         {
     91             //ignore space and enter
     92             while(kc<ap && c[kc]==' ' || c[kc]=='\n' || s[ks]=='\r')
     93                 kc++;
     94             while(ks<sp && s[ks]==' ' || s[ks]=='\n' || s[ks]=='\r')
     95                 ks++;
     96             
     97             //if(it<5) { printf("%d %d\n",c[kc],s[ks]); }
     98             
     99             //compare
    100             if(c[kc]!=s[ks]){ checked=false; break; }
    101             kc++; ks++;
    102             it++;
    103         }
    104         
    105         if(opt) printf("check out!\n");
    106         
    107         tot++;
    108         
    109         if(!opt) { if(tot%10==0) printf("%d\n",tot); } 
    110         else printf("==%d==\n",tot);
    111     }
    112     while(checked == true && tot<T);
    113     
    114     if(checked==false)
    115     {
    116         printf("checked failed.\nat the %d case.\nat charactor %d and %d.\ndatafile is in the folder.\n",tot,kc,ks);
    117     }else
    118     {
    119         printf("check complete,no any wrong thing detacted.\nfor %d cases.\n",tot);
    120         printf("generator used time:%.4fs (avg:%.4fms)\n",(db)tg/1000,(db)tg/tot);
    121         printf("program x used time:%.4fs (avg:%.4fms)\n",(db)tx/1000,(db)tx/tot);
    122         printf("program y used time:%.4fs (avg:%.4fms)\n",(db)ty/1000,(db)ty/tot);
    123         printf("amount to:%.4fs (avg:%.4fms)\n",(db)clock()/1000,(db)clock()/tot);
    124     }
    125     
    126     system("PAUSE");
    127     
    128     return 0;
    129 }
    View Code
  • 相关阅读:
    [文摘20080731]小破孩的婚姻
    Response.Redirect和Server.Transfer(Execute)的区别小论集锦
    学习FotoVision 进行C# colorMatrix 对图片的处理 : 亮度调整 抓屏 翻转 随鼠标画矩形
    [转]通过分区(Partition)提升MySQL性能
    [书目20080829]软件测试技术经典教程
    [转]c# + mysql + 事务处理(转载于 《C#数据库事务原理及实践》)
    遭遇 VS 的 无法调试引用的类库项目(DLL)问题(生成下面的模块时,启用了优化或没有调试信息)
    [转]C#动态生成文字图片
    命令行 SC命令 及通过sc config 更该windows服务的启动类型等
    [转]flash 与 js 通讯方法
  • 原文地址:https://www.cnblogs.com/DragoonKiller/p/4295949.html
Copyright © 2011-2022 走看看