loj#P544. 「LibreOJ β Round #7」Array Poisonous Suffix Problem

「LibreOJ β Round #7」Array Poisonous Suffix Problem

题目描述

Are you going to solve poisonous problems?

- Thanks a lot for today's poisonous problems.

What are you doing at the end of the world? Are you busy? Will you save us?

Ithea and Chtholly want to play a game in order to determine who will solve poisonous problems.

- Willem...

Lakhesh loves to make poisonous problems, so Nephren helps her run a cinema. We may call it No. 68 Cinema.

- I... I survived.

如题目背景所述,这是一道 PSP(Poisonous String Problem,毒瘤字符串题)。

对于一个正整数 kk,若任何一个 1n1\sim n 的排列均是某个字符集大小不超过 kk 的字符串的后缀排名数组(后缀排名数组即后缀数组的逆排列,如果你不知道什么是后缀数组,可以自行搜索或参考Wiki 对后缀数组的介绍),则称 kk 对于 nn 是毒瘤的。给定 kk,你需要找到一个最小的正整数 nn 使 kk 对于 nn 不是毒瘤的,并且你需要给出 1n1\sim n 的一个排列,其不是任何一个字符集大小不超过 kk 的字符串的后缀排名数组。如果有多个排列,输出字典序最小的,如果不存在这样的 nn 和排列,输出 213

输入格式

输入仅包含一个正整数 kk

输出格式

输出包含一至两行。

若无解,输出一行一个字符串 213

若有解,第一行包含一个正整数 nn,之后一行 nn 个空格隔开的正整数表示排列。

1
2
1 2

数据范围与提示

对于所有数据,1k1051 \leq k \leq 10^5

详细的数据限制及约定如下(留空表示和上述所有数据的约定相同):

Subtask # 分值 kk
11 77 9\leq 9
22 1616 16\leq 16
33 1919 43\leq 43
44 2525 700\leq 700
55 3333 105\leq 10^5