CF1088C.Ehab and a 2-operation task

普及/提高-

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You're given an array aa of length nn. You can perform the following operations on it:

  • choose an index ii (1≤i≤n)(1 \le i \le n), an integer xx (0≤x≤106)(0 \le x \le 10^6), and replace aja_j with aj+xa_j+x for all (1≤j≤i)(1 \le j \le i), which means add xx to all the elements in the prefix ending at ii.
  • choose an index ii (1≤i≤n)(1 \le i \le n), an integer xx (1≤x≤106)(1 \le x \le 10^6), and replace aja_j with aj%xa_j \% x for all (1≤j≤i)(1 \le j \le i), which means replace every element in the prefix ending at ii with the remainder after dividing it by xx.

Can you make the array strictly increasing in no more than n+1n+1 operations?

给你一个长度为 nn 的数组 aa。你可以对它执行以下操作:

  • 选择一个下标 ii(1≤i≤n1 \le i \le n)和一个整数 xx(0≤x≤1060 \le x \le 10^6),并将所有 aja_j(其中 1≤j≤i1 \le j \le i)替换为 aj+xa_j + x,即对以 ii 结尾的前缀中所有元素加上 xx;
  • 选择一个下标 ii(1≤i≤n1 \le i \le n)和一个整数 xx(1≤x≤1061 \le x \le 10^6),并将所有 aja_j(其中 1≤j≤i1 \le j \le i)替换为 aj%xa_j \% x,即对以 ii 结尾的前缀中每个元素取模 xx 后的余数。

你能否在至多 n+1n+1 次操作内使该数组严格递增?

输入格式

The first line contains an integer nn (1≤n≤2000)(1 \le n \le 2000), the number of elements in the array aa.

The second line contains nn space-separated integers a1a_1, a2a_2, …\dots, ana_n (0≤ai≤105)(0 \le a_i \le 10^5), the elements of the array aa.

第一行包含一个整数 nn (1≤n≤2000)(1 \le n \le 2000),表示数组 aa 的元素个数。

第二行包含 nn 个以空格分隔的整数 a1a_1, a2a_2, …\dots, ana_n (0≤ai≤105)(0 \le a_i \le 10^5),表示数组 aa 的元素。

输出格式

On the first line, print the number of operations you wish to perform. On the next lines, you should print the operations.

To print an adding operation, use the format "11 ii xx"; to print a modding operation, use the format "22 ii xx". If ii or xx don't satisfy the limitations above, or you use more than n+1n+1 operations, you'll get wrong answer verdict.

第一行输出你希望执行的操作数量。接下来的每一行输出一个操作。

对于加法操作,格式为“11 ii xx”;对于取模操作,格式为“22 ii xx”。如果 ii 或 xx 不满足上述限制条件,或你使用了超过 n+1n+1 个操作,则判为错误答案。

输入输出样例

  • 输入#1

    3
    1 2 3

    输出#1

    0
  • 输入#2

    3
    7 6 3

    输出#2

    2
    1 1 1
    2 2 4

说明/提示

In the first sample, the array is already increasing so we don't need any operations.

In the second sample:

In the first step: the array becomes [8,6,3][8,6,3].

In the second step: the array becomes [0,2,3][0,2,3].

在第一个样例中,数组已经是递增的,因此我们不需要任何操作。

在第二个样例中:

第一步:数组变为 [8,6,3][8,6,3]。

第二步:数组变为 [0,2,3][0,2,3]。

输入解题思路,AI测评打分。不知道怎么写?

首页