提交时间:2025-10-18 12:53:15

运行 ID: 38583

#include <cstdio> #include <vector> using namespace std; using i64 = long long; i64 gcd(i64 a, i64 b) { return b == 0 ? a : gcd(b, a % b); } i64 gcd(i64 a, i64 b, i64 c) { return gcd(a, gcd(b, c)); } i64 gcd(i64 a, i64 b, i64 c, i64 d, i64 e, i64 f) { return gcd(gcd(a, b, c), gcd(d, e, f)); } int main() { int n; scanf("%d", &n); vector<i64> a(n + 1); for (int i = 1; i <= n; ++i) scanf("%lld", &a[i]); for (int i = 1; i <= n; ++i) { for (int j = i + 1; j <= n; ++j) { for (int k = j + 1; k <= n; ++k) { if (gcd(a[i] * a[j], a[j] * a[k], a[k] * a[i]) * gcd(a[i] * a[i], a[j] * a[j], a[k] * a[k]) == gcd(a[i] * a[j] * a[j], a[j] * a[k] * a[k], a[i] * a[k] * a[k], a[j] * a[i] * a[i], a[k] * a[j] * a[j], a[k] * a[i] * a[i]) * gcd(a[i], a[j], a[k])) { printf("%d %d %d\n", i, j, k); return 0; } } } } puts("-1 -1 -1"); return 0; }