模板如下
#include<bits/stdc++.h> using namespace std; #define print(type,data) #data , type , data #define CHAR 0 #define INT 1 #define LONG 2 #define LONG_LONG 3 #define FLOAT 4 #define DOUBLE 5 #define STRING 6 //定義類型 /*例子: #define MYTYPE 7 */ #pragma message("Define new type of debugable data here") //添加類&結構體 /*例子: struct mytype{ ..... }; */ #pragma message("Define new class&struct here") void debugPrint(int line,int dataNum,...){//follow as name-type-pointer #ifndef ONLINE_JUDGE fprintf(stderr,"Debug message on line %d:\n",line); va_list dataPtr; va_start(dataPtr,dataNum); #pragma message("Add temps here") /*添加臨時變量位置(供調用數據) 例子: mytype temp_mytype; */ while(dataNum--){ fprintf(stderr," \"%s\"",va_arg(dataPtr,const char*)); switch(va_arg(dataPtr,int)){ case CHAR: fprintf(stderr,"(char)=\'%c\'",va_arg(dataPtr,int)); break; case INT: fprintf(stderr,"(int)=%d",va_arg(dataPtr,int)); break; case LONG: fprintf(stderr,"(long)=%ld",va_arg(dataPtr,long)); break; case LONG_LONG: fprintf(stderr,"(long long)=%lld",va_arg(dataPtr,long long)); break; case FLOAT: fprintf(stderr,"(float)=%f",va_arg(dataPtr,double)); break; case DOUBLE: fprintf(stderr,"(double)=%lf",va_arg(dataPtr,double)); break; case STRING: fprintf(stderr,"(string)=\"%s\"",va_arg(dataPtr,char*)); break; #pragma message("Add new type to debug data here") /*添加數據類型處理代碼 例子: case MYTYPE: temp_mytype=va_arg(dataPtr,mytype); fprintf(stderr,"(mytype)= ..... ,temp_mytype); break; */ default: fprintf(stderr,"(UNKNOW)=<WARNING:UNKNOW TYPE OF DATA>"); } fprintf(stderr,"\n"); } fprintf(stderr,"End debug message.\n\n"); #endif } //你的代碼 #define maxN 10000 void input(){ } void solve(){ } int main(){ #ifndef ONLINE_JUDGE freopen("filename.txt","r",stdin);//標準輸入重定向 freopen("filename.dbg.txt","w",stderr);//錯誤輸出重定向(用來調試程序) #endif input(); solve(); return 0; }
這個玩意用法如下:
int i=10356; char c='R'; char str[10]="Unreal Enging 4.22";
如果是這些東西要輸出就用這個
debugPrint(__LINE__,3,print(INT,i),print(CHAR,c),print(STRING,str));
不嫌麻煩也可以用這個
debugPrint(__LINE__,3,"i",INT,i,"c",CHAR,c,"str",STRING,str);
顯示結果如下(假設調試代碼在第83行)
Debug message on line 83: "i"(int)=10356 "c"(char)='R'; "str"(string)="Unreal Enging 4.22" End debug message.
然後就用這個寫程序
一開始就發現規律:
以a爲0計算: 明碼+密碼再對26取餘就得密碼
那就好算了
表都不用打
一開始
樣例沒過,輸入問題
輸入一改就過了
我甚至寫了一個刷數據的
(代碼就是把一個減號該了加號)
然後似乎AC
然後第二題美滋滋
然後
然後
然後GG
(第一個RE是把ONLINE_JUDGE打成UNLINE_JUDGE導致的)
然後下載樣例,
得出一個結論:
兩個數據是以回車間隔的,而我是以空格分隔讀入的
然後大改,
結果本地情況:
OJ:
倆WA
然後
========[vigenere9.out]========= Expected | Yours wiguiynlznsdmjwabkzxlzepyvAZJDVWEWWCDPDNBSJYWLIMYBPDrtuwsskdp < ============================== ========[vigenere8.out]========= Expected | Yours vjihrjxlurwleuwvueanvyajglATWDRKGCQPOYQESBYDSLBDCBLHucfhqnsha < ============================== ========[vigenere4.out]========= Expected | Yours iohrvzilldmyuatdhluxxpykgmFPTXGJJBKWSYRBFJSVVNWIEKDNrvehhziuq < ============================== ========[vigenere10.out]========= Expected | Yours msfxvxrlgfkdfussyiwvnjnldzFJTPGFRSMMQCGABXDXKPBDYEYMdujhmwmym < ============================== ========[vigenere3.out]========= Expected | Yours aqroiftkxnkcmcdaurfwjzwoyoPMGDRIVLIAKABYSPDUHXUMWMNKebpgtjgyi < ============================== ========[vigenere2.out]========= Expected | Yours hfnosmkstxrpxycwucdhbzhimgEMNRLJRSWQOWXBVTBCGAYGHLFDlmqkiqrvp < ============================== ========[vigenere7.out]========= Expected | Yours wpukmrofcnwtkhsbypmxddkkefGHYRWMOTQHEPYVMJUDAROZFFMMghijatyoq < ============================== ========[vigenere1.out]========= Expected | Yours abceefgiijkmmnoqqrsuuvwyyzACCDEGGHIKKLMOOPQSSTUWWXYA < ============================== ========[vigenere5.out]========= Expected | Yours hbqflnjlsnxoqwwwqfuacyahcmDFLLLFUJPRNPWRBSUAAAUJYEGCelgqhjppp < ==============================
那就是 不夠魯棒 魯棒後AC MMP