P6411 [COCI 2008/2009 #3] MATRICA

题目描述

您需要构造一个 $n\times n$ 字符矩阵 $M$。 这个字符矩阵有如下几条限制: 1. $M_{i,j}=M_{j,i}(1\le i,j\le n)$。 1. 必须恰好含有 $a_i$ 个字符 $c_i$。 因为构造的方案有很多种,所以你需要输出方案中字典序最小的。 因为输出太多不好,所有你只需要输出 $p$ 列,具体的方案将会在输入格式中声明。 如果无解,请输出 `IMPOSSIBLE`。

输入格式

输出格式

说明/提示

#### 数据范围与限制 - 对于 $60\%$ 的数据,保证 $n\le 300$。 - 对于 $80\%$ 的数据,保证 $n\le 3\times 10^3$。 - 对于 $100\%$ 的数据,保证 $1\le n\le 3\times 10^4$,$1\le k\le 26$,$\sum a_i=n^2$,$c_i\neq c_j$,$1\le p\le 50$。 #### 说明 本题译自 [Croatian Open Competition in Informatics 2008/2009](https://hsin.hr/coci/archive/2008_2009) [Contest #3](https://hsin.hr/coci/archive/2008_2009/contest3_tasks.pdf) T4 MATRICA。