acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 题解

    #include<bits/stdc++.h> using namespace std; #define in inline #define ll long long in ll read() { ll w=0,r=1; char ch=getchar(); while(!isdigit(ch)) { if(ch=='-')r=-1; ch=getchar(); } while(isdigit(ch)) { w=(w<<1)+(w<<3)+(ch^48); ch=getchar(); } return w*r; } in ll gcd(ll x0,ll y0) //最大公约数 用于约分 { return y0?gcd(y0,x0%y0):x0; } ll a,b,x,y,a1,b1,ansa,ansb; //a,b,x,y 为题目中所描述的。a1,b1 为 a,b 的备份。ansa,ansb 为最终结果。 int main() { // freopen(".in","r",stdin); a=read(); a1=a; b=read(); b1=b; x=read(); y=read(); ll k=gcd(x,y); x/=k; y/=k; if(x>a||y>b) { puts("0 0"); return 0; } a=(a/x)*x; //a 取能取的最大值时 b=(a/x)*y; if(a<=a1&&b<=b1) //是否符合要求 { ansa=a; ansb=b; } a=a1; b=b1; b=(b/y)y; //b 取能取的最大值时 a=(b/y)x; if(a<=a1&&b<=b1) { if(ansaansb<ab) //取更大的那一个 { ansa=a; ansb=b; } } cout<<ansa<<" "<<ansb<<endl; return 0; }

    userId_undefined

    码农爱历史

    倔强青铜
    2阅读
    0回复
    1点赞
首页