Задача из отборочного тура EGOI


Даны два массива a_{1,2,...n} и b_{1,2,...n}, состоящих из n положительных целых чисел. Надо составить такой массив c_{1,2,...n} , что для каждого i выполняется следующее условие: c_i=a_i либо c_i=b_i. Красота массива количество различных чисел в нем. Найдите максимальную красоту массива с которую можно достичь.
Мой код:3mnoD2 - Online C++0x Compiler & Debugging Tool - Ideone.com
Где ошибка?

1 лайк

Было тяжело понять ваш код (спасибо за отсутствие комментариев или хоть какого либо объяснения хода мыслей :frowning: ). Но как вариант, вы проверяете left1<left2, и если это не верно, то вы выбираете v2 для c. Но это не правильно, например
a: b:
1 2
2 2
1 3
1 4
Ваш код выберет после первой итерации c[1]=2, хотя лучше было бы выбрать с[1]=1

И в целом ваш подход к решению: “на каждой итерации выбирать более редкое число” не верен. Например
a b
1 2
1 3
1 3
4 2
5 2
6 2
7 2

После первой итерации ваш алгоритм выберет единицу из первой строчки, так как единица более редкая. Но правильным выбором будет двойка.

2 лайка

Do you want a tip or a full solution?