0 atcoder#AGC001D. [AGC001D] Arrays and Palindrome

[AGC001D] Arrays and Palindrome

题目描述

高橋君のお母さんは、高橋君の誕生日に数列 a, b a,\ b をプレゼントしました。 数列 a, b a,\ b は以下の性質をすべて満たしていたため、高橋君はとても喜びました。

  • 数列 a a に含まれる数の総和は N N である。
  • 数列 b b に含まれる数の総和は N N である。
  • 数列 a, b a,\ b に含まれる数はすべて正の整数である。
  • 以下の条件を 2 2 つとも満たす長さ N N の文字列は、必ずすべての文字が同じである。
    • 先頭の a1 a_1 文字、続く a2 a_2 文字、さらに続く a3 a_3 文字 ... はすべて回文である。
    • 先頭の b1 b_1 文字、続く b2 b_2 文字、さらに続く b3 b_3 文字 ... はすべて回文である。

しかしある日、高橋君は数列 a, b a,\ b を両方ともなくしてしまいました。 幸運なことに、高橋君は数列 a a が長さ M M の数列 A A の並び替えであったことを覚えています。

高橋君のお母さんは高橋君を喜ばせるために、数列 a, b a,\ b として考えられるものを高橋君にもう一度プレゼントしようと考えました。

输入格式

入力は以下の形式で標準入力から与えられる。

N N M M A1 A_1 A2 A_2 ... ... AM A_M

输出格式

数列 a, b a,\ b として考えられるものがある場合、数列 a a 、数列 b b の長さ、数列 b b を順に出力せよ。 ただし、高橋君の勘違いなどの理由で数列 a, b a,\ b として考えられるものが存在しない場合がある。その場合は代わりに Impossible と出力せよ。

题目大意

题目描述

高桥くん的母亲在高桥生日的时候送了他 a,ba, b 两个数列。因为 a,ba, b 满足了如下的所有性质, 所以他非常高兴:

  • aa 数列的数字总和是 NN
  • bb 数列的数字总和是 NN
  • a,ba, b 中包含的数都是正整数;
  • 满足以下两个条件的数列, 所有元素必定是相同的。
    • 最开始的 a1a_1 个元素, 接下来的 a2a_2 个元素,更后面的 a3a_3 个,等等,都是回文;
    • 最开始的 b1b_1 个元素, 接下来的 b2b_2 个元素,更后面的 b3b_3 个,等等,都是回文。

但是有一天,高桥把把数列 aabb 都弄丢了, 幸运的是,他知道数列 aa 是另一个长度为 MM 的序列 AA 的排列。

为了让他再一次高兴起来, 他妈妈决定给他另一对数列使其满足如上性质。

数据范围

  • 1N1051≤N≤10^5
  • 1M1001≤M≤100
  • 1Ai1051≤A_i≤10^5

数据保证 AiA_i 的和是 NN

输入输出格式:

输入格式

第一行两个整数 N,MN, M

之后一行,第 ii 个整数是 AiA_i

输出格式

如果存在解, 输出三行,第一行数列 aa,第二行 bb 的长度,第三行数列 bb

否则输出 Impossible(大小写敏感!)。

感谢 @ToBiChi 提供翻译。

3 2
2 1
1 2
1
3
6 1
6
6
3
1 2 3
55 10
1 2 3 4 5 6 7 8 9 10
Impossible

提示

制約

  • 1N105 1≦N≦10^5
  • 1M100 1≦M≦100
  • 1Ai105 1≦A_i≦10^5
  • Ai A_i の総和は N N である。