CF1242E.Planar Perimeter

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

Ujan has finally cleaned up his house and now wants to decorate the interior. He decided to place a beautiful carpet that would really tie the guest room together.

He is interested in carpets that are made up of polygonal patches such that each side of a patch is either a side of another (different) patch, or is an exterior side of the whole carpet. In other words, the carpet can be represented as a planar graph, where each patch corresponds to a face of the graph, each face is a simple polygon. The perimeter of the carpet is the number of the exterior sides.

Ujan considers a carpet beautiful if it consists of ff patches, where the ii -th patch has exactly aia_i sides, and the perimeter is the smallest possible. Find an example of such a carpet, so that Ujan can order it!

输入格式

The first line of input contains a single integer ff ( 1f1051 \leq f \leq 10^5 ), the number of patches in the carpet.

The next line contains ff integers a1,,afa_1, \ldots, a_f ( 3ai31053 \leq a_i \leq 3\cdot 10^5 ), the number of sides of the patches. The total number of the sides of the patches a1++afa_1 + \ldots + a_f does not exceed 31053\cdot10^5 .

输出格式

Output the description of the carpet as a graph.

First, output a single integer nn ( 3n31053 \leq n \leq 3 \cdot 10^5 ), the total number of vertices in your graph (the vertices must be numbered from 11 to nn ).

Then output ff lines containing the description of the faces. The ii -th line should describe the ii -th face and contain aia_i distinct integers vi,1,,vi,aiv_{i,1}, \ldots, v_{i,a_i} ( 1vi,jn1 \leq v_{i,j} \leq n ), which means that the vertices vi,jv_{i,j} and vi,(jmodai)+1v_{i,(j \bmod{a_i})+1} are connected by an edge for any 1jai1 \leq j \leq a_i .

The graph should be planar and satisfy the restrictions described in the problem statement. Its perimeter should be the smallest possible. There should be no double edges or self-loops in the graph. The graph should be connected. Note that a solution always exists; if there are multiple solutions, output any of them.

输入输出样例

  • 输入#1

    2
    3 3
    

    输出#1

    4
    2 1 4 
    1 2 3 
    
  • 输入#2

    3
    5 3 5
    

    输出#2

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

说明/提示

In the first sample, the two triangular faces are connected by a single edge, which results in the minimum perimeter 44 .

The figure shows one possible configuration for the second sample. The minimum perimeter in this case is 33 .

首页