ВВОД-ВЫВОД ВО ВСЕХ ЗАДАЧАХ СТАНДАРТНЫЙ, ТО ЕСТЬ С КЛАВИАТУРЫ И НА ЭКРАН! НЕ НУЖНО ИСПОЛЬЗОВАТЬ ФАЙЛОВЫЙ ВВОД-ВЫВОД!

Ограничение по времени на все задачи – 0.25 сек, по памяти – 64 Mb.

01. Заполнение матриц

Ваша задача заполнить квадратную матрицу размера n*n в определенном порядке числами от 1 до 2*n-1. Смотрите примеры.

Входные данные

В единственной строке содержится число n — размер матрицы (двумерного массива), n ≤ 100.

Выходные данные

Выведите 2*n строк по n чисел в каждой, разделяя пробелами. В первые n строк выведите содержимое матрицы, заполненной первым способом, в следующие n строк — содержимое матрицы, заполненной вторым способом.

Пример(ы)

ввод

вывод

3

1 2 3

2 3 4

3 4 5

3 4 5

2 3 4

1 2 3

ввод

вывод

4

02. Массив и запросы


Дан массив из n чисел, изначально заполненный нулями, и m запросов вида lf, rg, x. Запрос lf, rg обозначает записать во все ячейки массива с номерами от lf до rg значение x. Выведите массив после применения всех запросов к нему.

Входные данные

В первой строке записано два целых числа n и m (1 ≤ n,m ≤ 100). Далее идет m строк с запросами заданными в виде lf rg x (1 ≤ lfrgn, 1 ≤ x ≤ 100).

Выходные данные

Выведите n чисел ai. Значение записанные в ячейках массива после применения всех операций.

Пример(ы)

ввод

вывод

7 1

6 7 75

ввод

вывод

10 2

2 8 70

2 5 14

070

03. Скобки

Задана правильная скобочная последовательность, т. е. такая, в которую можно вставить числа и знаки ‘+’ так, что получится корректное выражение. Например, последовательность

НЕ нашли? Не то? Что вы ищете?

(()(()))

— правильная, а

())(()

— нет.

В правильной скобочной последовательности для каждой скобки можно найти парную ей (она всегда существует и единственная). Напишите программу, которая это и делает.

Входные данные

Во входном файле задана строка, содержащая правильную скобочную последовательность. Ее длина от 2 до 250 символов. Символов, отличных от скобок, во входных данных нет

Выходные данные

Выведите n чисел (где n — длина заданной строки), i-ое число должно содержать номер символа, парного к i-му.

Пример(ы)

input. txt

output. txt

(()(()()))

14 1

04. Лыжник

Лыжник катается по снежному полю. Его передвижения можно описать строкой из символов 'S', 'N', 'W', 'E' (что соответствует перемещениям на 1 метр в направлении юга, севера, запада или востока соответственно). Известно, что если он прокладывает лыжню, то есть катится по ранее не посещенному отрезку пути, то время такого передвижения равно 5 с, а если он катится по лыжне, то 1 с. Найдите время лыжника в пути.


Входные данные

В первой строке входного файла содержится непустая строка из символов 'S', 'N', 'W', 'E'. Длина строки не превосходит 100 символов.


Выходные данные

файл должен содержать одно число - время в секундах лыжника в пути.


Пример

Ввод

Test #1
WWEN

Test #2
WWEE

Вывод

Test #1
16

Test #2
12

05. Соревнование

Петя с Колей решили выяснить, кто из них лучше программирует. Для этого они стали собираться в местном компьютерном классе и решать задачи из небезызвестного местного архива. Было решено, что мальчики могут готовиться дома, но не могут приносить готовые решения. Также было решено, что нужно решать с результативностью не менее 50%, то есть если у Пети решено P задач, то он не может решать задачу с номером большим, чем 2P+2. Петя очень внимательно прочел дома все N задач из архива и для каждой выписал время, за которое он может ее решить. Помогите Пете составить расписание его работы, если в соревновании побеждает решивший наибольшее количество задач за время K.


Входные данные

В первой строке записаны целые числа N и K (0 < N <= 15000, 1 <= K <= 10^9). Во второй строке записано N целых чисел A1, A2, ... ,AN, где Ai - время, необходимое для решения i-ой задачи (1 <= Ai <= 10^9). Числа в строках разделены пробелами.


Выходные данные

Выведите в первой строке число Q - сколько задач успеет решить Петя за время K, а во второй - номера задач, которые нужно решать Пете в нужном порядке. Числа разделяйте пробелами.


Пример


Ввод

10 30
12 1


Вывод

6

06. Долина Золотоискателей

Американский миллионер Дж. Скрудж хочет приобрести квадратный участок земли в долине Золотоискателей. В этой долине находится N ярко выраженных мест добычи золота. Каждое такое место представляет собой квадрат размера 1x1 (никакие два квадрата не совпадают). Каждое такое место характеризуется величиной Ai - средним годовым доходом. Скрудж хочет приобрести квадратный участок, на территории которого находится такой набор мест добычи золота, что их суммарный средний годовой доход не меньше W. Конечно, искомый участок должен иметь минимальную площадь. Стороны искомого квадрата должны быть параллельны осям координат. Ваша задача помочь найти расположение такого участка.


Входные данные

В первой строке входного файла содержится два целых числа N, W (1 <= N <= 450; 1 <= W <= 50000). В следующих N строках описаны места добычи золота координатами своих левых верхних углов (Xi, Yi) и величиной Ai (1 <= Xi, Yi <= 10000; 1 <= Ai <= 100). Таким образом, каждая из этих N строк содержит по три целых числа Xi, Yi, Ai. Все места добычи золота - это такие квадраты 1x1, стороны которых параллельны осям координат. Известно, что никакие левые верхние углы двух мест добычи не лежат на одной вертикальной или горизонтальной прямой. Система координат введена таким образом, что ось абсцисс идет слева направо, а ось ординат снизу вверх.


Выходные данные

Выведите фразу NO SOLUTION, если искомый участок не существует. В противном случае выведите четыре целых числа - координаты левого верхнего и правого нижнего угла искомого квадратного участка соответственно. Числа выводите через пробелы. Если решений несколько, выведите любое.


Пример


Ввод

4 6
1 1 1
5 5 4
4 2 4
2 3 3


Вывод