比赛 |
202110省实验桐柏一中普及组联赛 |
评测结果 |
AAAAAAAAAW |
题目名称 |
分数运算 |
最终得分 |
90 |
用户昵称 |
就决定是你辣 |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2021-10-18 19:02:51 |
显示代码纯文本
#include<bits/stdc++.h>
//#define int unsigned long long
using namespace std;
unsigned long long a[55][2];
unsigned long long b[30];
unsigned long long m,n,gcdd=1;
unsigned long long gcd(unsigned long long x,unsigned long long y){
if(y==0)return x;
else gcd(y,x%y);
}
int main(){
freopen("fenshu.in","r",stdin);
freopen("fenshu.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i][0];
cin>>a[i][1];
}
for(int i=1;i<=m;i++){
cin>>b[i];
}
for(int i=1;i<=n;i++){
gcdd=a[i][1]*gcdd/gcd(a[i][1],gcdd);
//cout<<1;
}
for(int i=1;i<=m;i++){
gcdd=b[i]*gcdd/gcd(b[i],gcdd);
}
a[n+1][1]=gcdd;
for(int i=1;i<=n;i++){
a[i][0]=a[i][0]*gcdd/a[i][1];
a[i][1]=gcdd;
a[n+1][0]+=a[i][0];
// cout<<a[i][0]<<endl;
}
//cout<<a[n+1][0]<<" "<<a[n+1][1]<<endl;
for(int i=1;i<=m;i++){
if(a[n+1][0]%b[i]==0)a[n+1][0]/=b[i];
else a[n+1][1]*=b[i];
}
if(a[n+1][0]>=a[n+1][1]&&a[n+1][0]%a[n+1][1]==0)cout<<a[n+1][0]/a[n+1][1];
else {
gcdd=gcd(a[n+1][0],a[n+1][1]);
cout<<a[n+1][0]/gcdd<<" "<<a[n+1][1]/gcdd;
}
return 0;
}