G. GCDland Mystical Arrays
ограничение времени на тест 1 секунда
ограничение памяти на тест 256 мегабайт
В эксцентричном городке GCDland есть живет математик по имени Тео, у которого есть дикая и параноидальная теория заговора. Тео убежден, что в некоторых мистических массивах наибольший общий делитель (НОД) каждой возможной пары чисел всегда один и тот же. Он считает, что эти массивы — это сообщения древней цивилизации, пытающейся связаться с нами посредством чисел.
Друзья Тео думают, что он зашел в тупик, но он полон решимости доказать их неправоту и раскрыть причину. истина, стоящая за этими массивами. Ему нужна ваша помощь, чтобы подтвердить свою теорию. Учитывая массив целых чисел, ваша задача — определить, действительно ли НОД каждой пары чисел в массиве один и тот же. Если теория Тео верна для данного массива, вам следует ее подтвердить; в противном случае вам следует развенчать его.
НОД двух чисел — это наибольшее положительное целое число, которое делит оба числа, не оставляя остатка.
Ввод
Первая строка содержит целое число 𝑁 (2≤𝑁≤100,000), количество элементов в массиве.
Вторая строка содержит 𝑁целые числа 𝐴𝑖(1≤𝐴𝑖≤10 ^7), элементы массива.
Вывод
Выведите «YES», если НОД каждой пары чисел в массиве один и тот же. В противном случае выведите «НЕТ».
Проблему с кодом можно посмотреть здесь.
Это мой код :
Код: Выделить всё
int gcd(int a, int b) {
if (b == 0)
return a;
return gcd(b, a % b);
}
int solve()
{
int n;
cin >> n;
vector v;
int first, second;
cin >> first >> second;
v.push_back(first);
v.push_back(second);
const int x = gcd(v[0], v[1]);
for (int i = 2; i < n; i ++)
{
int newval;
cin >> newval;
v.push_back(newval);
for (int j = 0; j < i; j++)
{
//cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79104551/how-to-determine-if-all-pairs-in-an-array-have-the-same-gcd-optimally[/url]