#include <bits/stdc++.h>
using namespace std;
struct fs {
long long x, y;
bool z;
} f[100];
long long sum, fmcar = 1;
string n;
long long fm, fz, kf = 0;
long long yf(long long a, long long b) {
for (int i = max(a, b); i >= 1; i--) {
if (a % i == 0 && b % i == 0) {
a /= i;
b /= i;
}
}
if (kf < 0) {
cout << "-" << a << "/" << b;
} else if (b == 1) {
if (kf < 0) {
cout << "-" << a;
}else{
cout<<a;
}
}else{
cout << a << "/" << b;
}
}
long long cf(string n) {
fm = 0, fz = 0;
long long fw = 1, js = 0;
for (long long i = 0; i < n.size(); i++) {
if (n[i] == '/') {
fw = 1;
js = 1;
} else if (js == 0) {
fz += (n[i] - '0') * fw;
fw *= 10;
} else {
fm += (n[i] - '0') * fw;
fw *= 10;
}
}
}
void fscf() {
string j = "";
bool fh = 0;
for (long long i = 0; i < n.size(); i++) {
if (n[i] == '-') {
cf(j);
f[++sum].z = fh;
f[sum].x = fz;
f[sum].y = fm;
j = "";
fh = 1;
} else if (n[i] == '+') {
cf(j);
f[++sum].z = fh;
f[sum].x = fz;
f[sum].y = fm;
j = "";
fh = 0;
} else {
j += n[i];
}
}
cf(j);
f[++sum].z = fh;
f[sum].x = fz;
f[sum].y = fm;
}
int main() {
cin >> n;
fscf();
for (long long i = 1; i <= sum; i++) {
fmcar *= f[i].y;
}
for (long long i = 1; i <= sum; i++) {
long long c = fmcar / f[i].y;
f[i].x *= c;
f[i].y *= c;
}
for (long long i = 1; i <= sum; i++) {
if (f[i].z == 0) {
kf += f[i].x;
} else {
kf -= f[i].x;
}
}
yf(kf, f[1].y);
return 0;
}
也不知道为什么