/*###Begin banned keyword - each of the following line if appear in code will raise error. regex supported
###End banned keyword*/
//###INSERT CODE HERE -
#include <iostream>
#include <cmath>
using namespace std;
struct PhanSo
{
int t, m;
};
void Nhap(PhanSo& a)
{
cin >> a.t >> a.m;
}
PhanSo Nhap()
{
PhanSo b;
cin >> b.t >> b.m;
return b;
}
int ucln(int a, int b)
{
a = abs(a); b = abs(b);
int t;
while (b > 0)
{
t = a % b;
a = b;
b = t;
}
return a;
}
PhanSo Cong(PhanSo a, PhanSo b)
{
PhanSo ketqua = { (a.t * b.m) + (b.t * a.m), a.m * b.m};
return ketqua;
}
void Xuat(PhanSo a)
{
int d = ucln(a.t, a.m);
a.t /= d;
a.m /= d;
if (a.t % a.m == 0) cout << a.t / a.m;
else
if (a.t > 0 && a.m < 0 || a.t < 0 && a.m < 0)
{
a.t = -a.t;
a.m = -a.m;
cout << a.t << "/" << a.m;
}
else cout << a.t << "/" << a.m;
}
int main() {
PhanSo a, b;
Nhap(a);
b = Nhap();
Xuat(Cong(a, b));
return 0;
}
LyojIyNCZWdpbiBiYW5uZWQga2V5d29yZCAtIGVhY2ggb2YgdGhlIGZvbGxvd2luZyBsaW5lIGlmIGFwcGVhciBpbiBjb2RlIHdpbGwgcmFpc2UgZXJyb3IuIHJlZ2V4IHN1cHBvcnRlZAojIyNFbmQgYmFubmVkIGtleXdvcmQqLwoKLy8jIyNJTlNFUlQgQ09ERSBIRVJFIC0KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgUGhhblNvCnsKICAgIGludCB0LCBtOwp9OwoKdm9pZCBOaGFwKFBoYW5TbyYgYSkKewogICAgY2luID4+IGEudCA+PiBhLm07Cn0KClBoYW5TbyBOaGFwKCkKewogICAgUGhhblNvIGI7CiAgICBjaW4gPj4gYi50ID4+IGIubTsKICAgIHJldHVybiBiOwp9CgppbnQgdWNsbihpbnQgYSwgaW50IGIpCnsKICAgIGEgPSBhYnMoYSk7IGIgPSBhYnMoYik7CiAgICBpbnQgdDsKICAgIHdoaWxlIChiID4gMCkKICAgIHsKICAgICAgICB0ID0gYSAlIGI7CiAgICAgICAgYSA9IGI7CiAgICAgICAgYiA9IHQ7CiAgICB9CiAgICByZXR1cm4gYTsKfQoKUGhhblNvIENvbmcoUGhhblNvIGEsIFBoYW5TbyBiKQp7CiAgICBQaGFuU28ga2V0cXVhID0geyAoYS50ICogYi5tKSArIChiLnQgKiBhLm0pLCBhLm0gKiBiLm19OwogICAgcmV0dXJuIGtldHF1YTsKfQoKdm9pZCBYdWF0KFBoYW5TbyBhKQp7CiAgICBpbnQgZCA9IHVjbG4oYS50LCBhLm0pOwogICAgYS50IC89IGQ7CiAgICBhLm0gLz0gZDsKICAgIGlmIChhLnQgJSBhLm0gPT0gMCkgY291dCA8PCBhLnQgLyBhLm07CiAgICBlbHNlCiAgICAgICAgaWYgKGEudCA+IDAgJiYgYS5tIDwgMCB8fCBhLnQgPCAwICYmIGEubSA8IDApCiAgICAgICAgewogICAgICAgICAgICBhLnQgPSAtYS50OwogICAgICAgICAgICBhLm0gPSAtYS5tOwogICAgICAgICAgICBjb3V0IDw8IGEudCA8PCAiLyIgPDwgYS5tOwogICAgICAgIH0KICAgICAgICBlbHNlIGNvdXQgPDwgYS50IDw8ICIvIiA8PCBhLm07Cn0KaW50IG1haW4oKSB7CiAgICBQaGFuU28gYSwgYjsKICAgIE5oYXAoYSk7CiAgICBiID0gTmhhcCgpOwogICAgWHVhdChDb25nKGEsIGIpKTsKICAgIHJldHVybiAwOwp9Cg==