Олимпиадный тренинг

Задача . C. Ехаб и задача с двумя операциями


Дан массив \(a\) длины \(n\). Вы можете выполнять на нем следующие операции:

  • выбрать индекс \(i\) \((1 \le i \le n)\), целое число \(x\) \((0 \le x \le 10^6)\), и заменить \(a_j\) на \(a_j+x\) для всех \((1 \le j \le i)\), то есть добавить \(x\) ко всем элементам на отрезке с начала массива по \(i\)-й его элемент.
  • выбрать индекс \(i\) \((1 \le i \le n)\), целое число \(x\) \((1 \le x \le 10^6)\), и заменить \(a_j\) на \(a_j \% x\) для всех \((1 \le j \le i)\), то есть заменить каждый элемент на отрезке с начала массива по \(i\)-й его элемент на его остаток при делении на \(x\).

Можете ли вы сделать массив строго возрастающим не более, чем за \(n+1\) операцию?

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

В первой строке записано целое число \(n\) \((1 \le n \le 2000)\), количество элементов в массиве \(a\).

Во второй строке записаны \(n\) целых чисел \(a_1\), \(a_2\), \(\dots\), \(a_n\) \((0 \le a_i \le 10^5)\), элементы массива \(a\).

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

На первой строке выведите количество операций. Далее выведите операции, по одной в строке.

Чтобы вывести операцию добавления, используйте формат "\(1\) \(i\) \(x\)".

Чтобы вывести операцию взятия по модулю, используйте формат "\(2\) \(i\) \(x\)".

Если \(i\) или \(x\) не соответствуют ограничениям, приведенным в условии, или вы используете более \(n+1\) операции, вы получите вердикт Неверный ответ.

Примечание

В первом примере массив изначально возрастает, поэтому нам не нужно производить над ним какие-либо операции.

Во втором примере:

На первом шаге: массив становится равен \([8,6,3]\).

На втором шаге: массив становится равен \([0,2,3]\).


Примеры
Входные данныеВыходные данные
1 3
1 2 3
0
2 3
7 6 3
2
1 1 1
2 2 4

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя