hdu_2054_A == B_201311301601
A == B ?
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 53634 Accepted Submission(s): 8215
Problem Description
Give you two numbers A and B, if A is equal to B, you should print "YES", or print "NO".
Input
each test case contains two numbers A and B.
Output
for each case, if A is equal to B, you should print "YES", or print "NO".
Sample Input
1 2
2 2
3 3
4 3
Sample Output
NO
YES
YES
NO
1 #include <stdio.h> 2 #include <string.h> 3 #define MAX 100000 4 5 char str1[MAX+10],str2[MAX+10]; 6 int a1[MAX+10],a2[MAX+10],b1[MAX+10],b2[MAX+10]; 7 8 int bijiao(char *str1,char *str2) 9 { 10 int len1,len2; 11 int i,j,k,t; 12 for(i=0;i<MAX+10;i++) 13 a1[i]=a2[i]=b1[i]=b2[i]=0; 14 len1=strlen(str1); 15 for(i=0;i<len1;i++) 16 if(str1[i]=='.') 17 {t=i;break;} 18 if(i>=len1) 19 t=len1; 20 for(j=0,i=t-1;i>=0;i--) 21 a1[j++]=str1[i]-'0'; 22 for(j=0,i=t+1;i<len1;i++) 23 a2[j++]=str1[i]-'0'; 24 len2=strlen(str2); 25 for(i=0;i<len2;i++) 26 if(str2[i]=='.') 27 {t=i;break;} 28 if(i>=len2) 29 t=len2; 30 for(j=0,i=t-1;i>=0;i--) 31 b1[j++]=str2[i]-'0'; 32 for(j=0,i=t+1;i<len2;i++) 33 b2[j++]=str2[i]-'0'; 34 if(len1==0&&len2==0) 35 return 0; 36 for(i=0;i<MAX;i++) 37 { 38 if(a1[i]!=0||a2[i]!=0||b1[i]!=0||b2[i]!=0) 39 break; 40 } 41 if(i>=MAX) 42 return 2; 43 for(i=0;i<MAX;i++) 44 { 45 if(a1[i]!=b1[i]) 46 { 47 k=0; 48 break; 49 } 50 } 51 if(i>=MAX) 52 { 53 for(i=0;i<MAX;i++) 54 { 55 if(a2[i]!=b2[i]) 56 { 57 k=0; 58 break; 59 } 60 } 61 if(i>=MAX) 62 k=1; 63 } 64 return k; 65 //puts(str1); 66 //puts(str2); 67 } 68 int main() 69 { 70 while(scanf("%s%s",str1,str2)!=EOF) 71 { 72 int t=0,k; 73 //gets(str2); 74 //getchar(); 75 if((str1[0]>='0'&&str1[0]<='9')&&(str2[0]>='0'&&str2[0]<='9')) 76 k=bijiao(str1,str2); 77 else if((str1[0]>='0'&&str1[0]<='9')&&(str2[0]=='+')) 78 k=bijiao(str1,str2+1); 79 else if((str2[0]>='0'&&str2[0]<='9')&&(str1[0]=='+')) 80 k=bijiao(str1+1,str2); 81 else if(str1[0]==str2[0]) 82 k=bijiao(str1+1,str2+1); 83 else 84 { 85 t=bijiao(str1+1,str2+1); 86 if(t==2) 87 k=1; 88 else 89 k=0; 90 } 91 if(k) 92 printf("YES\n"); 93 else 94 printf("NO\n"); 95 } 96 return 0; 97 }
wa了n次,原来是数组开的太小