社区讨论
月赛T1为啥RE
P1001A+B Problem参与者 5已保存回复 10
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 10 条
- 当前快照
- 1 份
- 快照标识符
- @mm1vnunp
- 此快照首次捕获于
- 2026/02/25 18:14 2 周前
- 此快照最后确认于
- 2026/02/26 23:55 2 周前
CPP
没有发总版的权限只能发这了
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e7+7;
struct node{
int x,y;
double sum;
}a[N],cnt;
bool cmp(node x,node y){return x.sum<y.sum;}
int n;
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].x>>a[i].y;
a[i].sum=1.0*a[i].x/a[i].y;
// if(a[i].x>=a[i].y){
// cnt.x*=a[i].x,cnt.y*=a[i].y;
// }
}
sort(a+1,a+1+n,cmp);
if(a[n].x<a[n].y){
cout<<a[1].x<<" "<<a[1].y<<"\n";
return 0;
}
cnt.x=cnt.y=1;
int mid=1;
for(int i=2;i<=n;i++){
if(a[i].x<a[i].y){
cnt.x*=a[i].x;
cnt.y*=a[i].y;
}
else {
mid=i;
a[i].x*=cnt.y;
a[i].y*=cnt.x;
}
}
a[1].x*=cnt.y,a[1].y*=cnt.x;
for(int i=mid;i<=n;i++){
a[1].x*=a[i].y;
a[1].y*=a[i].x;
}
int gcd=__gcd(a[1].x,a[1].y);
cout<<a[1].x/gcd<<" "<<a[1].y/gcd<<"\n";
return 0;
}
回复
共 10 条回复,欢迎继续交流。
正在加载回复...