pat1081 Rational Sum

来源:互联网 发布:千万不要去淘宝搜这些 编辑:程序博客网 时间:2024/06/04 19:18
#include<cstdio>#include<iostream>#include<algorithm>#include<vector>#include<queue>#include<string>#include<cstring>#include<cmath>#include<map>#define ll long longusing namespace std;ll a[105][2];pair<ll,ll>ans;ll gcd(ll x,ll y){return y == 0?x:gcd(y,x%y);}void add(int x){ll down = a[x][1]*ans.second;ll up = a[x][1]*ans.first+a[x][0]*ans.second;ll u = gcd(up,down);ans = make_pair(up/u,down/u);}int main(){    int n,i,j;ll x,y;while(scanf("%d",&n)!=EOF){for(i = 1;i<=n;i++){scanf("%lld/%lld",&x,&y);a[i][0] = x;a[i][1] = y;}ans.first = a[1][0];ans.second = a[1][1];for(i = 2;i<=n;i++)add(i);if(ans.first%ans.second == 0)printf("%lld\n",ans.first,ans.second);else if(ans.first/ans.second>0)printf("%lld %lld/%lld\n",ans.first/ans.second,ans.first%ans.second,ans.second);else printf("%lld/%lld\n",ans.first,ans.second);}    return 0;}

0 0
原创粉丝点击