fork(2) download
  1. #include<iostream>
  2. using namespace std;
  3. void add(string a,string b)
  4. {
  5. int arr[1001];
  6. int i=a.length()-1;
  7. int j=b.length()-1;
  8. int k=1000;
  9. while(j>=0){
  10. arr[k]=a[i--]+b[j--]-'0'-'0';
  11.  
  12.  
  13. while(arr[k]>9)
  14. {
  15. int e=arr[k];
  16. arr[k]=arr[k]%10;
  17. i>=0? (a[i]=a[i]+e/10):(arr[--k]=e/10);
  18.  
  19. }
  20.  
  21. k--;
  22. }
  23. for(;i>=0;i--)
  24. {
  25. arr[k--]=a[i]-'0';
  26. }
  27. k++;
  28.  
  29. int c[1001];int p=0;
  30. int f=0;
  31. for(;k<=1000;k++)
  32. {
  33. c[p++]=(f*10+arr[k])/2;
  34. f=arr[k]%2;
  35. }
  36. int flag=1;
  37. for(int q=0;q<p;q++)
  38. {
  39. if(c[q]==0&&flag==1)
  40. continue;
  41. else{
  42.  
  43. cout<<c[q];
  44. flag=0;
  45. }
  46. }
  47. if(flag==1)
  48. cout<<"0";
  49. cout<<endl;
  50. }
  51. void sub(string a,string b)
  52. {
  53. int arr[1001];
  54. int i=a.length()-1;
  55. int j=b.length()-1;
  56. int k=1000;
  57. while(j>=0){
  58. arr[k]=a[i--]- b[j--];
  59. if(arr[k]<0)
  60. {
  61. int e;
  62. e=10+a[i+1]-b[j+1];
  63.  
  64. arr[k]=e;
  65. int h=i;
  66. if(a[h]=='0')
  67. {
  68.  
  69. while(a[h]=='0')
  70. {
  71. a[h]='9';
  72. h--;
  73. }
  74. a[h]--;
  75. }
  76. else a[i]--;
  77. }
  78. k--;
  79. }
  80. for(;i>=0;i--)
  81. {
  82. arr[k--]=a[i]-'0';
  83. }
  84. k++;
  85. int c[1001];int p=0;
  86. int f=0;
  87. for(;k<=1000;k++)
  88. {
  89. c[p++]=(f*10+arr[k])/2;
  90. f=arr[k]%2;
  91. }
  92. int flag=1;
  93. for(int q=0;q<p;q++)
  94. {
  95. if(c[q]==0&&flag==1)
  96. continue;
  97. else{
  98.  
  99. cout<<c[q];
  100. flag=0;
  101. }
  102. }
  103. if(flag==1)
  104. cout<<"0";
  105. cout<<endl;
  106. }
  107. main()
  108. {
  109. int t=10;
  110. while(t--)
  111. {
  112.  
  113. string a;
  114. string b;
  115. cin>>a;
  116. cin>>b;
  117. add(a,b);
  118. sub(a,b);
  119. }
  120. }
Success #stdin #stdout 0s 3476KB
stdin
232121
21
232321
2121
656565
6767
565656
556
55454
432
434556
434
43434545
1
3232343
2221
2323323
2123
65
1
stdout
116071
116050
117221
115100
331666
324899
283106
282550
27943
27511
217495
217061
21717273
21717272
1617282
1615061
1162723
1160600
33
32