比赛 |
202110省实验桐柏一中普及组联赛 |
评测结果 |
C |
题目名称 |
分数运算 |
最终得分 |
0 |
用户昵称 |
➥Q小白小黑233 |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2021-10-18 21:19:55 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstdint>
#include<bits\c++config.h>
using namespace std;
typedef __int128 ll;
ll gcd(ll in1, ll in2){
while (in2 != 0){
ll t = in1 % in2;
in1 = in2;
in2 = t;
}
return in1;
}
ll bigin(string s){
int l=s.length();
ll out=0;
for(int i=0;i<l;i++){
out=out*10+s[i]-'0';
}
return out;
}
void bigout(ll in){
string out="";
while(in>0){
unsigned long long ten= 1e10;
unsigned long long t=in%ten;
in/=ten;
cout<<t;
}
// int l=out.length();
// for(int i=0;i<l;i++){
// putchar(out[i]);
// }
}
struct kind{
ll a,b;
kind(ll a,ll b){
};
}fs={0,0},p={0,0};
void j(kind k);
void plusq( kind &x,const kind& y) {
ll z=gcd( x.b,y.b);
ll bei=(x.b/z*y.b);
x=kind(bei/x.b*x.a+bei/y.b*y.a,bei);
j(x);
}
void chu( kind& x,const long long & y){
x=(kind( x.a,x.b*y ));
}
int main(){
freopen("fenshu.in","r",stdin);
freopen("fenshu.out","w",stdout);
int n,m;
cin>>n>>m;
int all=n+m;
int i;
for(i=1;i<=n;i++){
string ina,inb;
cin>>ina>>inb;
p=fs;
fs.a=bigin(ina);
fs.b=bigin(inb);
plusq(fs,p);
}
for(i=1;i<=m;i++){
unsigned long long l;
cin>>l;
p=fs;
chu(fs,l);
}
bigout(fs.a);
cout<<" ";
bigout(fs.b);
cout<<endl;
}
void j(kind k){
ll z = gcd(k.a, k.b);//z=zuidagongyinshu
k.a=k.a/z,k.b=k.b/z;
}