比赛 防止浮躁的小练习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;
}