loj#P3837. 「PA 2018」Poddrzewo

「PA 2018」Poddrzewo

题目描述

题目译自 PA 2018 Runda 1 Poddrzewo

给定一个长度为 nn 的序列 aa

构造一个结点数为 kk 的无根树,结点编号分别为 1k1 \cdots k 。该树第 ii 个结点的度数为 aia_i

有可能无解,你可以进行如下操作来使其有解:

  1. 修改序列中第 ii 个数。
  2. 删除序列中第 ii 个数。
  3. 交换序列中第 i,ji,j 个数。

可以证明,进行有限次操作后一定有解。

你的任务是 最小化操作 11 使用的次数

输入格式

一行一个整数 nn ,表示序列 aa 的长度。

下一行有 nn 个整数,第 ii 个整数表示 aia_i

输出格式

第一行一个整数 xx ,表示操作 11 使用次数最小值。

第二行一个整数 k (2kn)k\ (2\le k\le n) ,表示你构造的树结点数目。

接下来 k1k-1 行,每行两个数 u,v (1u,vk)u,v\ (1\le u,v\le k) ,表示连接第 u,vu,v 个结点。

多解输出任意解。

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

数据范围与提示

对于 100%100\% 的数据:

  • 2n1062 \le n \le 10^6
  • 1ain11 \le a_i \le n-1

保证存在至少一个子任务,其中操作 11 使用次数最小值为 00