Thứ Sáu, 29 tháng 3, 2019

Bài C - Codeforces Beta Round Round #7

Bài C:
Đề bài: Một đường thẳng trên mặt phẳng được mô tả bằng phương trình $Ax+By+C=0$. Bạn phải tìm bất kỳ điểm nào trên đường thẳng này, thỏa mãn tọa độ của những điểm này nguyên từ -5.10^(18) đến 5.10^(18), hoặc chỉ ra rằng không có điểm nào như vậy thỏa mãn.
Đầu vào:
+ Dòng đầu tiên chứa 3 số nguyên A,B và C (-2.10^(9)<=A,B,C<=2.10^(9))- tương ứng với hệ số của phương trình đường thẳng trên. Nó được đảm bào rằng $A^2+B^2>0$.
Đầu ra:
+ Nếu có điểm tồn tại, in ra tọa độ của điểm đó, ngược lại in ra -1.
Ví dụ:
Đầu vào:
2 5 3
Đầu ra:
6 -3
Hướng dẫn:
Lời giải:
#include<cstdio>
typedef long long ll;
ll a,b,c,d,x,y;
void exgcd(ll a,ll b,ll& x,ll& y)
{
    if(!b){d=a,x=1,y=0;}else{exgcd(b,a%b,y,x);y-=x*(a/b);}
}
int main()
{
    scanf("%I64d%I64d%I64d",&a,&b,&c);c=-c;
    exgcd(a,b,x,y);
    if(c%d!=0)return puts("-1"),0;else printf("%I64d %I64d\n",x*c/d,y*c/d);
}

Không có nhận xét nào:

Đăng nhận xét

Bài G - Educatioal Round 62

Đề bài: Bạn được cho 1 đồ thị vô hướng đặc biệt. Nó bao gồm $2n$ đỉnh được đánh số từ 1 đến 2n. Dưới đây là một số đặc tính của đồ thị: + ...