fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <string.h>
  5.  
  6. char rev( char *x)
  7. {
  8. int temp,l = strlen(x);
  9. for(int i=0;i<l/2;i++)
  10. {
  11. temp = x[i];
  12. x[i] = x[l - i - 1];
  13. x[l - i - 1] = temp;
  14. }
  15. }
  16. void solve (char *x)
  17. {
  18. int length = strlen(x);
  19. for(int i=0;i<length;i++)
  20. {
  21. x[i] = x[i + 1];
  22. if(i == length - 1)
  23. {
  24. x[length - 1] = '\0';
  25. length--;
  26. }
  27. }
  28. }
  29. void swap(char *x1,char *x2)
  30. {
  31. char temp[1000];
  32. strcpy(temp,x1);
  33. strcpy(x1,x2);
  34. strcpy(x2,temp);
  35. }
  36. void plus(char *x1,char *x2, char *r,int *q)
  37. {
  38. int tmp = 0,t = 0;
  39. int l = strlen(x2);
  40. for(int i=l-1;i>=0;i--)
  41. {
  42. int k = x1[i] + x2[i] - 48 - 48 + tmp;
  43. if(k>9)
  44. {
  45. tmp = 1;
  46. r[t++] = k%10 + 48;
  47. }else {
  48. tmp=0;
  49. r[t++] = k + 48 ;
  50. }
  51. }
  52. *q=t;
  53. }
  54. void subtract(char *x1,char *x2, char *r,int *q)
  55. {
  56. int tmp = 0,t = 0;
  57. int l = strlen(x2);
  58. for(int i=l-1;i>=0;i--)
  59. {
  60. int k = -x1[i] + x2[i] + tmp;
  61. if(k<0)
  62. {
  63. tmp = -1;
  64. r[t++] = (k+10)%10 + 48;
  65. }else {
  66. tmp=0;
  67. r[t++] = k + 48 ;
  68. }
  69. }
  70. *q=t;
  71. }
  72. int main()
  73. {
  74. int test;
  75. scanf("%d",&test);
  76. while(test--)
  77. {
  78. char s1[1001],s2[1001];
  79. scanf("%s%s",s1,s2);
  80. if(strlen(s1)>strlen(s2))swap(s1,s2);
  81. int th1=0,th2=0,th3=0;
  82. if(s1[0] == '-')
  83. {
  84. solve(s1);
  85. th1=1;
  86. }
  87. if(s2[0] == '-')
  88. {
  89. solve(s2);
  90. th2=1;
  91. }
  92. int l1 = strlen(s1),l2 = strlen(s2);
  93. /*
  94.   th1: a<0 b<0 b-a
  95.   th2: a<0 b>0 b+a
  96.   th3: a>0 b>0 b-a
  97.   */
  98. int tmp=0;
  99. char res[1002];
  100. int t=0;
  101. int kt=0;
  102. if(l1<l2)
  103. {
  104. char d[10];
  105. strcpy(d,"0");
  106. rev(s1);
  107. while(strlen(s1)<l2)
  108. {
  109. strcat(s1,d);
  110. }
  111. rev(s1);
  112. if(th1 == 1 && th2 == 0)plus(s1,s2,res,&t);
  113. else if(th1 == 0 && th2 == 1)plus(s1,s2,res,&t);
  114. else subtract(s1,s2,res,&t);
  115. }else{
  116. for(int i=0;i<=l2;i++)
  117. {
  118. if(s1[i] > s2[i])
  119. {
  120. kt = 1;
  121. break;
  122. }
  123. }
  124. if(kt == 1)swap(s1,s2);
  125. subtract(s1,s2,res,&t);
  126. }
  127. int j=t-1;
  128. if(res[t-1] == '0')
  129. {
  130. for(int i=t-1;i>=0;i--)
  131. {
  132. if(res[i] != '0')
  133. {
  134. j=i;
  135. break;
  136. }
  137. }
  138. }
  139. for(int i=j;i>=0;i--)printf("%c",res[i]);
  140. printf("\n");
  141. }
  142. return 0;
  143. }
Success #stdin #stdout 0.01s 5512KB
stdin
1132
89
stdout
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g
8g