Mashush, Нужно составить план покраски (один), который должен работать для любой изначальной покраски столбов. План "покрасить столбы 1-2" сработает, когда все 3 столба разные, но это лишь один из многих вариантов. На варианте, когда один столб не такой, как 2 других ни один алгоритм не поможет.
Slavon7, Вообще непонятен вопрос. Приведите несколько примеров входных и выходных данных. Переформулируйте "нужно изменит значения переменной так что бы было условие" Какой переменной? Поменять местами k, m, n?
И еще дополнение - в стек вы кладете тип открывающей скобки. При встрече закрывающей - надо проверить, что на вершине в стеке лежит открывающая скобка того же типа.
Можете подсказку дать, или описать, что это за аналитическое решение? Все, решения, что я могу найти, это или использование встроенных BigInt и их аналогов, или собственно реализация сложения длинных чисел (которая, на самом деле, тривиальна).
Андрей Руденко, Вы заводите и инициализируете новый массив в цикле по i. При этом вне цикла остается неинициализированный массив.
Надо инициализацию вывести за цикл, туда где у вас массив a заводится.
И еще вы массив не отсортировали, без этого проверка простым циклом не сработает.
Еще, цикл нужно гнать от 1, вы же обращаетесь к i-1-ому элементу.
Александр, Ну вот без этого никак не решить. Можно для каждого X задать соответствующий Y - но это уже позволяет задавать только правильные отображения. Можно задать пары (x,y). Тогда надо проверить, что все x из X встречаются по одному разу. Это можно сделать так - выделить все X из пар в массив, отсортировать его и сравнить с множеством X, которое вы тоже читаете в массив и сортируете
Математические формулы так не работают.