#include <bits/stdc++.h>
using namespace std;
#define fileIO(s) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout);

template <typename T>
T read(){
    T res = 0, sign = 1;
    char ch = getchar();
    while(ch < '0' || ch > '9'){
        if(ch == '-') sign = -1;
        ch = getchar();
    }
    while(ch >= '0' && ch <= '9'){
        res = (res << 1) + (res << 3) + (ch - '0');
        ch = getchar();
    }
    return sign * res;
}

template <typename T>
void write(T n){
    if(n < 0){
        putchar('-');
        n = -n;
    }
    if(n > 9) write(n / 10);
    putchar(n % 10 + '0');
}

int main(){

    __int128 a, b;
    a = read<__int128>();
    b = read<__int128>();
    write<__int128>(a + b);
    cout << endl;
    write<__int128>(a - b);
    cout << endl;
    write<__int128>(a * b);
    cout << endl;
    write<__int128>(a / b);
    cout << endl;
    write<__int128>(a % b);
	cout << endl;

    return 0;
}
12345678901234567890
1234567890
12345678902469135780
12345678900000000000
15241578751714678875019052100
10000000001
0
-1112131415
1617181910
505050495
-2729313325
-1798518805880702650
0
-1112131415

注意:如果想把long long相乘的结果转成__int128要先强转一下类型

__int128解决A + B Problem

#include <bits/stdc++.h>
using namespace std;
#define fileIO(s) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout);
#define int __int128

int read(){
    int res = 0, sign = 1;
    char ch = getchar();
    while(ch < '0' || ch > '9'){
        if(ch == '-') sign = -1;
        ch = getchar();
    }
    while(ch >= '0' && ch <= '9'){
        res = (res << 1) + (res << 3) + (ch - '0');
        ch = getchar();
    }
    return sign * res;
}

void write(int n){
    if(n < 0){
        putchar('-');
        n = -n;
    }
    if(n > 9) write(n / 10);
    putchar(n % 10 + '0');
}

signed main(){

	int a, b;
	a = read();
	b = read();
	int ans = a + b;
	write(ans);

    return 0;
}