CF1646F.Playing Around the Table
省选/NOI-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
There are n players, numbered from 1 to n sitting around a round table. The (i+1)-th player sits to the right of the i-th player for 1≤i<n, and the 1-st player sits to the right of the n-th player.
There are n2 cards, each of which has an integer between 1 and n written on it. For each integer from 1 to n, there are exactly n cards having this number.
Initially, all these cards are distributed among all the players, in such a way that each of them has exactly n cards. In one operation, each player chooses one of his cards and passes it to the player to his right. All these actions are performed simultaneously.
Player i is called solid if all his cards have the integer i written on them. Their objective is to reach a configuration in which everyone is solid. Find a way to do it using at most (n2−n) operations. You do not need to minimize the number of operations.
有 n 名玩家,编号从 1 到 n,围坐在一张圆桌旁。对 1≤i<n,第 (i+1) 号玩家坐在第 i 号玩家的右侧;而第 1 号玩家坐在第 n 号玩家的右侧。
共有 n2 张卡片,每张卡片上写有一个介于 1 到 n 之间的整数。对每个从 1 到 n 的整数,恰好有 n 张卡片写有该数。
初始时,所有这些卡片被分发给全部玩家,使得每位玩家恰好持有 n 张卡片。在一次操作中,每位玩家从自己手中的卡片中选择一张,并将其传递给其右侧的玩家。所有这些操作同时进行。
若玩家 i 手中所有卡片上写的数均为 i,则称该玩家为“稳固的”(solid)。他们的目标是达到一种局面,使得所有玩家均为稳固的。请设计一种方法,在至多 (n2−n) 次操作内达成该目标。你无需最小化操作次数。
输入格式
The first line contains a single integer n (2≤n≤100).
Then n lines follow. The i-th of them contains n integers c1,c2,…,cn (1≤cj≤n) — the initial cards of the i-th player.
It is guaranteed that for each integer i from 1 to n, there are exactly n cards having the number i.
第一行包含一个整数 n(2≤n≤100)。
接下来是 n 行。其中第 i 行包含 n 个整数 c1,c2,…,cn(1≤cj≤n),表示第 i 位玩家初始持有的牌。
保证对于每个从 1 到 n 的整数 i,恰好有 n 张牌的数字为 i。
输出格式
In the first line print an integer k (0≤k≤(n2−n)) — the numbers of operations you want to make.
Then k lines should follow. In the i-th of them print n integers d1,d2,…,dn (1≤dj≤n) where dj is the number written on the card which j-th player passes to the player to his right in the i-th operation.
We can show that an answer always exists under the given constraints. If there are multiple answers, print any.
第一行输出一个整数 k(0≤k≤(n2−n))—— 表示你希望执行的操作次数。
接下来输出 k 行。在第 i 行中,输出 n 个整数 d1,d2,…,dn(1≤dj≤n),其中 dj 表示在第 i 次操作中,第 j 位玩家传递给其右侧玩家的卡片上的数字。
在给定约束下,可以证明答案一定存在。若存在多个答案,输出任意一个即可。
输入输出样例
输入#1
2 2 1 1 2
输出#1
1 2 1
输入#2
3 1 1 1 2 2 2 3 3 3
输出#2
6 1 2 3 3 1 2 2 3 1 1 2 3 3 1 2 2 3 1
说明/提示
In the first test case, if the first player passes a card with number 2 and the second player passes a card with number 1, then the first player has two cards with number 1 and the second player has two cards with number 2. Then, after making this operation, both players are solid.
In the second test case, 0 operations would be enough too. Note that you do not need to minimize the number of operations.
在第一个测试用例中,若第一位玩家传递一张数字为 2 的卡片,第二位玩家传递一张数字为 1 的卡片,则第一位玩家将拥有两张数字为 1 的卡片,第二位玩家将拥有两张数字为 2 的卡片。执行此操作后,两位玩家均变为“稳固的”。
在第二个测试用例中,0 次操作也已足够。注意:你无需最小化操作次数。
输入解题思路,AI测评打分。不知道怎么写?