codeforces 304D. Rectangle Puzzle II(设计矩形)
#include using namespace std;int n,m,x,y,a,b;int gcd(int p1,int p2){ return p2==0?p1:gcd(p2,p1%p2);}int main(){ while(~scanf("%d%d%d%d%d%d",&n,&m,&x,&y,&a,&b)){ int gd=gcd(a,b); a=a/gd; b=b/gd; int len_rate=n/a,wid_rate=m/b; int change=min(len_rate,wid_rate); int len=change*a, hei=change*b; //面积最大化 int x1=x-len/2,x2=x+(len-len/2); //中心化 int y1=y-hei/2,y2=y+(hei-hei/2); if(x1<0){ int d=-x1; x1=0; x2+=d; } if(y1<0){ int d=-y1; y2+=d; y1=0; } if(x2>n){ int d=x2-n; x1-=d; x2=n; } if(y2>m){ int d=y2-m; y2=m; y1-=d; } if(x1>0&&(x2-x1+1)%2==0&&x==(x1+x2)/2){ //字典最小 x1--; x2--; } if(y1>0&&(y2-y1+1)%2==0&&y==(y1+y2)/2){ y1--; y2--; } printf("%d %d %d %d\n",x1,y1,x2,y2); } return 0;}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~