题目链接:Codeforces 490D Chocolate
两个种变换方式无疑是减掉一个因子3加上一个因子2和减掉一个因子2,所以从因子的角度出发,如果两组数存在不同的质因子肯定是不可以的。剩下的就是构造答案了。
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
const int maxn = 105;
int Arr[2][2], fac[2][maxn], cnt[2][2];
void divFact(int* a, int* b, int& c, int n) {
while (n % 2 == 0) {
b[0]++;
n /= 2;
}
while (n % 3 == 0) {
b[1]++;
n /= 3;
}
int m = sqrt(n);
for (int i = 5; i <= m; i++) {
while (n % i == 0) {
a[++c] = i;
n /= i;
}
if (n < i)
break;
}
if (n != 1)
a[++c] = n;
}