P00587. 染色
传统题
1000ms
256MiB
Description
机房的窗户是一个n行m列的方格阵,n,m未知
小J准备对窗户进行染色
他准备将最外圈的方格染成红色的,其余方格染成黑色的。
现给出红色方格的个数r和黑色方格的个数b,也就是说你会知道一共有多少个格子。
请给出一组可行的n,m的取值。
Format
Input
输入只有一行两个整数,分别表示红色方格的个数r和黑色方格的个数b。
8≤r≤2×10 ^6
1≤b≤2×10 ^6
数据保证至少存在一组解
Output
输出一行两个整数,分别表示方格阵的行数n和列数m。
如果有多组解,请输出n最大的一组。
Samples
输入数据 1
8 1
输出数据 1
3 3
输入数据 2
10 2
输出数据 2
4 3
#include<bits/stdc++.h>
using namespace std;
int r,b,c,i,n,m;
int main() {
cin>>r>>b;
c=n=r+b;
while((n-1+m-1)*2!=r&&(n-2)*(m-2)!=b) {
n--;
while(c%n) n--;
m=c/n;
}
cout<<n<<" "<<m;
return 0;
}