Advertisement
Guest User

Untitled

a guest
Dec 10th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.19 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdint.h>
  4.  
  5. int32_t satsum(int32_t v1, int32_t v2) {
  6.     int tp = 0;
  7.     if ((v1 <= 0 && v2 >= 0) || (v2 <= 0 && v1 >= 0)) {
  8.         return v1 + v2;
  9.     } else {
  10.         uint32_t v_1;
  11.         uint32_t v_2;
  12.         if (v1 < 0) {
  13.             v_1 = (uint32_t) -v1;
  14.             v_2 = (uint32_t)-v2;
  15.             tp = 1;
  16.         } else {
  17.             v_1 = (uint32_t) v1;
  18.             v_2 = (uint32_t) v2;
  19.             tp = 0;
  20.         }
  21.         if (tp == 1) {
  22.             if (((v_1 + (v_2 - (v_1 + v_2 + 1))) / 2) + 1 >= v_1 + v_2) {
  23.                 return v1 + v2;
  24.             } else {
  25.                 uint32_t ans = (((v_1 + (v_2 - (v_1 + v_2 + 1))) / 2) + 1);
  26.                 int a = (int) ans;
  27.                 return -(a);
  28.             }
  29.         } else {
  30.             if (((v_1 + (v_2 - (v_1 + v_2 + 1))) / 2) >= v_1 + v_2) {
  31.                 return v1 + v2;
  32.             } else {
  33.                 uint32_t ans = (v_1 + (v_2 - (v_1 + v_2 + 1))) / 2;
  34.                 int a = (int) ans;
  35.                 return a;
  36.             }
  37.         }
  38.     }
  39. }
  40.  
  41.  
  42. int main() {
  43.     printf("%d", satsum(-2147483645,-4)); //2147483647  and -2147483648
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement