比赛 |
防止浮躁的小练习v0.9 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
殉国 |
最终得分 |
100 |
用户昵称 |
Bravo ChaoS |
运行时间 |
0.038 s |
代码语言 |
C++ |
内存使用 |
0.30 MiB |
提交时间 |
2016-11-07 10:41:01 |
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
typedef long long ll;
ll a,b,c,x,y,ans=0,mn,mx;
void ex_gcd(ll a,ll b,ll& d,ll& x,ll& y)
{
if(!b) x=1,y=0,d=a;
else {ex_gcd(b,a%b,d,y,x);y-=x*(a/b);}
}
int main()
{
freopen("BlackHawk.in","r",stdin);
freopen("BlackHawk.out","w",stdout);
cin>>a>>b>>c;
if(a<b) swap(a,b);//a>b
ll d; ex_gcd(a,b,d,x,y);
if(c%d) {printf("-1 -1\n0\n");return 0;}
a/=d; b/=d; c/=d;
x*=c; y*=c;
y%=a;y=(y+a)%a;
x=(c-b*y)/a;
if(y<0 || x<0) {printf("-1 -1\n0\n");return 0;}
mn=x+y;
ll x2=x%b,y2=(c-a*x2)/b;
mx=x2+y2;
cout<<min(mn,mx)<<' '<<max(mn,mx)<<endl;
cout<<abs(x2-x)/b+1;
return 0;
}