-
个人简介
战火不停,征战不止
#include <bits/stdc++.h> #define debug(a) cout<<#a<<"="<<a<<"\n"; #define rep(i,a,b) for(int i=a;i<=b;++i) using namespace std; const long long N=2e5+7; int main(){ return 0; }
//不等式方程: #include <bits/stdc++.h> #define debug(a) cout<<#a<<"="<<a<<"\n"; #define rep(i,a,b) for(int i=a;i<=b;++i) using namespace std; const long long N=2e5+7; long long a,b,c,sx,ex,sy,ey,ans,xx,yy; long long bds(long long a,long long b,long long c,long long &xx,long long &yy){ if(b==0){ xx=c/a; yy=0; return a; } long long nx,ny; long long f=bds(b,a%b,c,nx,ny); xx=ny; yy=nx-a/b*ny; return f; } long long ii(long long a,long long b){ if(a<0){ return a/b; } else{ if(a%b){ return a/b+1; } return a/b; } } long long jj(long long a,long long b){ if(a>0){ return a/b; } else{ if(a%b){ return a/b-1; } return a/b; } } int main(){ cin>>a>>b>>c>>sx>>ex>>sy>>ey; if(c<0) c=-c; else{ a=-a; b=-b; } if(a<0){ a=-a; sx=-sx; ex=-ex; swap(sx,ex); } if(b<0){ b=-b; sy=-sy; ey=-ey; swap(sy,ey); } if(a*b==0){ if(b){ long long y=c/b; if(c%b==0&&y>=sy&&y<=ey) cout<<ex-sx+1; else cout<<0; } else if(a){ long long x=c/a; if(c%a==0&&x>=sx&&x<=ex) cout<<ey-sy+1; else cout<<0; } else{ if(c) cout<<0; else cout<<(ex-sx+1)*(ey-sy+1); } return 0; } long long d=bds(a,b,c,xx,yy); if(c%d){ cout<<0; return 0; } a/=d; b/=d; c/=d; long long ma=min(jj(ex-xx,b),jj(yy-sy,a)); long long mi=max(ii(sx-xx,b),ii(yy-ey,a)); if(ma<mi) cout<<0; else{ cout<<ma-mi+1; } return 0; }
-
通过的题目
-
最近活动
题目标签
- 模板
- 1
- 数学
- 1
- 数论
- 1
- 乘法逆元
- 1