Submission
Status:
P-------P-
Subtask/Task Score:
20/100
Score: 20
User: tha_smith
Problemset: Fraction
Language: cpp
Time: 0.004 second
Submitted On: 2025-10-09 15:51:00
#include <iostream>
using namespace std;
void divided(int a, int b, int aa, int bb, int num[]) {
int tb=b,tbb=bb;
//cout << a << " " << b << " " << aa << " " << bb << endl;
if(b!=bb) {
if(b>bb) {
if(b%bb==0) {
bb *= (tb/tbb);
aa *= (tb/tbb);
num[0] = a; num[1] = b; num[2] = aa; num[3] = bb;
}
else {
a = a*tbb;
b = tb*tbb;
aa = aa*tb;
bb = tb*tbb;
num[0] = a; num[1] = b; num[2] = aa; num[3] = bb;
}
}
else {
if(bb%b==0) {
a *= (tbb/tb);
b *= (tbb/tb);
num[0] = a; num[1] = b; num[2] = aa; num[3] = bb;
}
else {
a = a*tbb;
b = tb*tbb;
aa = aa*tb;
bb = tb*tbb;
num[0] = a; num[1] = b; num[2] = aa; num[3] = bb;
}
}
}
else {
num[0] = a; num[1] = b; num[2] = aa; num[3] = bb;
}
//cout << a << " " << b << " " << aa << " " << bb << endl;
}
void dividable(int ra,int rb,int num[]) {
if(ra%rb==0) {
cout << ra/rb << ' ' << 1 << endl;
num[0] = ra/rb;
num[1] = 1;
}
else {
cout << ra << ' ' << rb << endl;
num[0] = ra;
num[1] = rb;
}
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL);
int a,b,N;
cin >> a >> b >> N;
int num[4];
num[0]=a; num[1]=b;
for(int i=0; i<N; i++) {
char cc; int aa,bb;
cin >> cc >> aa >> bb;
if(cc=='+') {
divided(num[0],num[1],aa,bb,num);
int ra = num[0]+num[2];
int rb = num[1];
dividable(ra,rb,num);
//cout << num[0] << " " << num[1] << endl;
}
else if(cc=='-') {
divided(num[0],num[1],aa,bb,num);
int ra = num[0]-num[2];
int rb = num[1];
dividable(ra,rb,num);
//cout << num[0] << " " << num[1] << endl;
}
else if (cc=='*') {
//cout << num[0] << ' ' << aa << ' ' << num[1] << ' ' << bb << endl;
int ra = num[0] * aa;
int rb = num[1] * bb;
//cout << ra << ' ' << rb;
dividable(ra,rb,num);
//cout << num[0] << " " << num[1] << endl;
}
else if (cc=='/') {
int ra = num[0] * bb;
int rb = num[1] * aa;
dividable(ra,rb,num);
//cout << num[0] << " " << num[1] << endl;
}
}
}