Приведу свой вариант решения (все три задачи сдались )
250
Дан массив чисел. Найти лексикографически минимальную перестанову, сортирующую массив по неубыванию.
Решение:
Завёл массив пар, в котором каждому элементу исходного массива сопоставил его номер.
Отсортировал сначала по элементу, потом по номеру.
Далее двойной цикл - ищу позицию, в которой оказался i-й элемент и добавляю ее в ответ. Боян. =)
500
Посчитать количество чисел между min и max включительно, не делящихся на полный квадрат.
min от 1 до 1 000 000 000 000
max от min до min + 1 000 000
Решение:
Перебираем все квадраты до max. Красим все кратные им числа из промежутка min..max.
Считаем количество непокрашенных. =)
1000
Дан массив из 50 чисел. Требуется найти в нем все числа, такие, что если
число прибавить к нулевому, то сумма будет простым числом, а все остальные числа массива
можно будет хотя бы одним способом разбить на пары так, чтобы сумма в каждой паре была простым числом.
Решение.
Пусть наши числа - вершины графа. Тогда если сумма двух чисел - простое число, то между соответствующими им вершинами есть ребро.
Очевидно, что такой граф будет двудольным, одна доля - нечётные, другая - чётные числа.
Теперь переберём все элементы массива, складывая их с нулевым.
Если сумма - простое, то для всех остальных чисел построим граф и найдём максимальное паросочетание.
Если в паросочетание попали все вершины графа, то текущий перебираемый элемент пихается в ответ. =)
А рейтинг всё таки пересчитали... +212 =)