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;
        }
    }
}