稻花香里说丰年,听取WA声一片
  • 板块P2833 等式
  • 楼主STUDENT00
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/10/15 14:07
  • 上次更新2023/10/27 07:27:06
查看原帖
稻花香里说丰年,听取WA声一片
658786
STUDENT00楼主2022/10/15 14:07

最纯粹的扩欧:

#include<bits/stdc++.h>
#define int long long
#define y1 _y
using namespace std;
int a,b,c,x1,x2,y1,y2,x,y,z,ans;
int _gcd(int a,int b,int x,int y){
	if(!b){
		x=1;
		y=0;
		return a;
	}
	int p=_gcd(b,a%b,x,y),t=x;
	x=y;
	y=t-a/b*y;
	return p;
}
signed main(){
	scanf("%lld%lld%lld%lld%lld%lld%lld",&a,&b,&c,&x1,&x2,&y1,&y2);
	c=-c;
	int g=__gcd(a,b);
	a=a/g*c;
	b=b/g*c;
	z=_gcd(a,b,x,y);
	ans=min(max(x-x1,x2-x)/(b/z),max(y-y1,y2-y)/(a/z));
	printf("%lld",ans);
	return 0;
}
2022/10/15 14:07
加载中...