Submission
Status:
PP------PP
Subtask/Task Score:
40/100
Score: 40
User: monpluk
Problemset: Fraction
Language: cpp
Time: 0.004 second
Submitted On: 2025-10-07 09:07:15
#include <iostream>
using namespace std;
int gcd(int a,int b){
if(a<0){
a*=-1;
}
if(b<0){
b*=-1;
}
if(a == 1 || b == 1){
return 1;
}
if(a == b){
return a;
}
if(a > b){
return gcd(a-b,b);
}
if(b > a){
return gcd(a,b-a);
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int a,b,n,A[1001],B[1001];
cin >> a >> b >> n;
for(int i=0;i<n;i++){
char c;
int g,p,q;
cin >> c >> p >> q;
if(c == '+'){
a = a*q + b*p;
b = b*q;
}
if(c == '-'){
a = a*q - b*p;
b = b*q;
}
if(c == '*'){
a = a*p;
b = b*q;
}
if(c == '/'){
a = a*q;
b = b*p;
}
if(a == 0){
A[i] = 0;
B[i] = 1;
a = 0;
b = 1;
continue;
}
if(b < 0){
a *= -1;
b *= -1;
}
g = gcd(a,b);
a = a/g;
b = b/g;
A[i] = a;
B[i] = b;
}
for(int i=0;i<n;i++){
cout << A[i] << " " << B[i] << '\n';
}
}