Перебор с отсечением(22 задач)
Простые задачи на перебор(43 задач)
Гамильтонов цикл(2 задач)
Магическим квадратом будем называть квадрат с одинаковой суммой чисел по всем вертикалям и горизонталям; никаких требований на суммы по диагоналям накладывать не будем. Составьте такой квадрат из заданного набора чисел.
Во входном файле записаны 16 различных целых чисел в интервале от 0 до 32768
В выходной файл необходимо вывести искомое расположение чисел, составляющее магический квадрат 4*4 (каждое число должно встречаться ровно один раз), в четырех строках по четыре числа, или строку NO SOLUTION, если квадрат составить нельзя.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 6 13 14 2 11 12 9 15 7 4 8 16 10 5 3
Крестьянин, возвращаясь с ярмарки, увидел на мосту странную картину. Какой-то человек сначала считал деньги в кошельке, затем бросал в реку несколько монеток, бежал на другой конец моста, снова считал деньги в кошельке, и опять бросал несколько монеток и шел на другой конец моста. Наконец, пересчитав свои деньги, он явно обрадовался и отправился в дальнейший путь.
– Что ты делал? Зачем ты бросал деньги в воду? – спросил крестьянин, догнав странного человека.
Видя, что свой секрет скрыть не удастся, человек рассказал, что мост волшебный, что, если бросить с моста ровно 29 копеек, то, как только перейдешь мост, количество рублей в оставшейся сумме денег превращаются в новой сумме в количество копеек, а копейки – в рубли, что, перейдя мост несколько раз, можно получить сумму, намного большую первоначальной.
– Самое важное – вовремя остановиться, – сказал человек и ушёл.
Крестьянин задумался, достал кошелек и пересчитал свои деньги. У него было 46 рублей 47 копеек. «29 копеек – не деньги, дай-ка попробую». После первого прохода у него получилось 18р.46к., после второго прохода – 17р.18к., а после третьего – 89р.16к. «Ух-ты! А еще больше можно получить?» – обрадовался крестьянин. После четвертого прохода у него стало 87р.88к., после пятого – 59р.87к., после шестого – 58р.59к., после седьмого – 30р.58к., после восьмого – 29р.30к., после девятого – 1р.29к., а после десятого осталась 1 копейка.
«Эх, дурачина, надо было после третьего раза остановиться!» – расстроился крестьянин.
Напишите программу, которая по начальной сумме денег у крестьянина определит оптимальное число проходов по мосту для получения наибольшей конечной суммы.
Во входном файле в первой строке содержится целое число M – количество копеек, которые нужно бросать с моста (1≤M≤50). Во второй строке содержатся два целых числа R и K через пробел – начальная сумма денег у крестьянина, выраженная в рублях и копейках (0≤R≤99, 0≤K≤99).
В выходной файл вывести наименьшее количество проходов по мосту для получения максимально возможной суммы.
26 31 53
4
Шесть стрелков решили повысить свою меткость и зашли в тир пострелять. В тире было установлено шесть мишеней, и каждый стрелок выстрелил во все мишени. После чего они собрались в баре, и каждый рассказал, сколько раз он попал в мишень. Бармен, запомнил, что сказал каждый из них, и на следующий день посчитал, сколько дырок в каждой мишени. Требуется помочь бармену определить: не ошибся ли кто-то из "снайперов", и сколько существует вариантов стрельбы (то есть, кто в какие мишень попадал), при которых получаются такие результаты. Считается, что две пули в одну дырку не попадают.
Во входном файле в первой строке для каждого стрелка записано число попаданий, которое он назвал при обсуждении результатов. В третей строке записано число дырок для каждой мишени.
В первой строке - количество вариантов такой стрельбы. Если вариант всего один, то для каждого стрелка вывести строчку, в которой будет для каждой мишени проставлено 0 - не попал, 1 - попал.
1 0 0 0 1 0 1 0 0 1 0 0
2
5 5 5 5 5 0 5 5 5 5 5 0
1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0