[链接] 我是链接, 点我呀:)
[题意]
题意
[题解]
参考这篇题解: https://blog.csdn.net/mitsuha_/article/details/82825862
为什么可以保证 mgcd(2n,k)/k 是一个整数?
因为先前已经判断过
2nm/k 是可以整除的.
显然 k 是被 2n 和 m 两个数字除了之后变成 1
2n 贡献的那一部分其实就是 gcd(2n,k)
那么我们显然可以直接用 gcd(2n,k) 来代表 2*n
所以右边肯定也是能整除的.
且 <=m
[代码]
- #include <bits/stdc++.h>
- using namespace std;
- const int N = 50;
- const long long M = 15e6;
- long long n,m,k;
- long long x1,y1,x2,y2,x3,y3;
- int main(){
- iOS::sync_with_stdio(0),cin.tie(0);
- cin>> n>> m>> k;
- if ( (2*n*m)%k!=0){
- cout<<"NO"<<endl;
- }else{
- long long temp = __gcd(2*n,k);
- if (temp>1){
- x2 = 2*n/temp;
- y3 = m*temp/k;
- }else{
- temp = __gcd(2*m,k);
- x2 = n*temp/k;
- y3 = 2*m/temp;
- }
- cout<<"YES"<<endl;
- cout<<x1<<" "<<y1<<endl;
- cout<<x2<<" "<<y2<<endl;
- cout<<x3<<" "<<y3<<endl;
- }
- return 0;
- }
来源: http://www.bubuko.com/infodetail-3005520.html