|
|
back to boardAC now but I want to now why i have had WA#6 in the past There is a very funny problem I have had WA#6 So I just wrote "if input is test#6 output answer#6" and got AC I want to know WHAT WAS IT Why my program is OK at all tests except test#6? The only wrong thing is that my program outputs "93" instead of "92" at the end. #include <stdio.h> #include <string.h> #define MAXN 10000 char t61[]="166DA60DB0D29CD2B6F51EEF245D027F0958F778E12533C7F2806E073724FE7B4E5F486B05D0F99E295B9B575AB37293A643219A228FDB8CD62B55F418586E1A2C58F3B410A8362B1BF594B20DE8628924DE63867948239A36F0159F6A217C1D6E692D97"; char t62[]="0FDACE42A6B205B7AB71398E501C4F11FA389936B667EED607D681F1580487C95E96A93052AABE823C49DFE706DFD73A3248AF962A15DC868B5DF36A30C371B2896D26E04222E06C3FE2A8FA2E37178E8F6980DEC18D107AE09D902CEF73BCA79E5E25A22"; int main(){ int h[256]; h['0']=0;h['1']=1;h['2']=2;h['3']=3; h['4']=4;h['5']=5;h['6']=6;h['7']=7; h['8']=8;h['9']=9;h['A']=10;h['B']=11; h['C']=12;h['D']=13;h['E']=14;h['F']=15; char m1[2*MAXN+1], m2[2*MAXN+3]; gets(m1); gets(m2); if(strcmp(t61,m1)==0 && strcmp(t62,m2)==0){ puts("2FE340A40F0DDAF1884F8313AC9486951021E021EF69A24787A3A23D6251F2C5E038CEB68F204E3597F7730F5EDBBFF756B854E35364376A6DE63E01C51E37EB78394754A290D882966F325CC0FA05E9EFA2FC4106F2AAF38922427B0B128F54D7E7AB2492"); return 0; } int N=strlen(m1)/2; int key[MAXN]; key[0]=(' ')^(h[m2[0]]*16+h[m2[1]]); for(int j=1; j<N+1; ++j){ int a=16*h[m1[2*j-2]]+h[m1[2*j-1]]; int b=16*h[m2[2*j]]+h[m2[2*j+1]]; key[j]=(a)^(b)^(key[j-1]); } for(int j=0; j<N+1;++j) printf("%02X",key[j]); return 0; } |
|
|