比赛 |
202110省实验桐柏一中普及组联赛 |
评测结果 |
AAAWWWWWWW |
题目名称 |
分数运算 |
最终得分 |
30 |
用户昵称 |
wzprogrammer_X |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2021-10-18 20:23:00 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int gcd(int q,int w){
if(w==0)return q;
else return gcd(w,q%w);
}
int lcm(int q,int w){
return q*w/gcd(q,w);
}
struct fen{
int mu;
int zi;
fen operator*(const int A)const
{
// mu*=A;
fen k;
k.mu=mu*A;
k.zi=zi;
return k;
}
fen operator+(const fen A)const
{
int u=lcm(mu,A.mu);
fen k;
k.mu=u;
k.zi=zi*(u/mu)+(A.zi*(u/A.mu));
return k;
}
void init(){
int q,w;
cin>>q>>w;
zi=q,mu=w;
}
void yuefen(){
int u=gcd(mu,zi);
mu/=u;
zi/=u;
}
void print(){
fen k;
k.mu=mu;
k.zi=zi;
k.yuefen();
if(k.mu==1)cout<<k.zi;
else cout<<k.zi<<" "<<k.mu;
}
};
fen ans,t;
int n,m,temp;
int main(){
freopen("fenshu.in","r",stdin);
freopen("fenshu.out","w",stdout);
cin>>n>>m;
ans.init();
for(int i=1;i<n;i++){
t.init();
ans=ans+t;
}
ans.yuefen();
for(int i=1;i<=m;i++){
cin>>temp;
ans=ans*temp;
}
ans.print();
}