CF850D.Tournament Construction

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

Ivan is reading a book about tournaments. He knows that a tournament is an oriented graph with exactly one oriented edge between each pair of vertices. The score of a vertex is the number of edges going outside this vertex.

Yesterday Ivan learned Landau's criterion: there is tournament with scores d1<=d2<=...<=dnd_{1}<=d_{2}<=...<=d_{n} if and only if for all 1<=k<n and .

Now, Ivan wanna solve following problem: given a set of numbers S=a1,a2,...,amS={a_{1},a_{2},...,a_{m}} , is there a tournament with given set of scores? I.e. is there tournament with sequence of scores d1,d2,...,dnd_{1},d_{2},...,d_{n} such that if we remove duplicates in scores, we obtain the required set a1,a2,...,am{a_{1},a_{2},...,a_{m}} ?

Find a tournament with minimum possible number of vertices.

输入格式

The first line contains a single integer mm ( 1<=m<=311<=m<=31 ).

The next line contains mm distinct integers a1,a2,...,ama_{1},a_{2},...,a_{m} ( 0<=ai<=300<=a_{i}<=30 ) — elements of the set SS . It is guaranteed that all elements of the set are distinct.

输出格式

If there are no such tournaments, print string "=(" (without quotes).

Otherwise, print an integer nn — the number of vertices in the tournament.

Then print nn lines with nn characters — matrix of the tournament. The jj -th element in the ii -th row should be 11 if the edge between the ii -th and the jj -th vertices is oriented towards the jj -th vertex, and 00 otherwise. The main diagonal should contain only zeros.

输入输出样例

  • 输入#1

    2
    1 2
    

    输出#1

    4
    0011
    1001
    0100
    0010
    
  • 输入#2

    2
    0 3
    

    输出#2

    6
    000111
    100011
    110001
    011001
    001101
    000000
    
首页