AT_past202109_f.不完全順列

通过率:0%

AC君温馨提醒

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

题目描述

给定一个长度为 NN、仅由 0 和 1 组成的字符串 SS,请你求出一个满足以下所有条件的长度为 NN 的数列 P=(P1,P2,…,PN)P=(P_1,P_2,\dots,P_N)。如果不存在这样的数列,请输出 -1。

  • 数列 PP 是 1,2,…,N1,2,\dots,N 的一个排列,即 PP 是 1,2,…,N1,2,\dots,N 的一个重排。
  • 对于所有 1≤i≤N1\le i\le N,都满足以下条件:
    • 如果 SS 的第 ii 个字符为 1,则 Pi=iP_i=i。
    • 如果 SS 的第 ii 个字符为 0,则 Pi≠iP_i\neq i。

输入格式

输入从标准输入中给出,格式如下:

NN SS

输出格式

如果不存在满足条件的数列 PP,请输出 -1。
如果存在,输出数列 PP 的每一项,整数之间用空格分隔。

输入输出样例

  • 输入#1

    5
    10101

    输出#1

    1 4 3 2 5
  • 输入#2

    4
    1110

    输出#2

    -1
  • 输入#3

    12
    001110110010

    输出#3

    12 6 3 4 5 1 7 8 2 9 11 10

说明/提示

注意

本题在 2021/10/02 18:00 JST 之前禁止讨论。如果有相关讨论,可能会被要求赔偿。考试结束后可以公开总分和认证等级,但请不要透露解了哪些题等信息。

约束条件

  • 1≤N≤1051\le N\le 10^5
  • SS 仅由 0 和 1 组成。

样例解释 1

SS 的第 1,3,51,3,5 个字符为 1,因此 P1=1,P3=3,P5=5P_1=1,P_3=3,P_5=5 必须成立。SS 的第 2,42,4 个字符为 0,因此 P2≠2,P4≠4P_2\neq 2,P_4\neq 4 必须成立。在本输入下,唯一满足条件的数列 PP 是 (1,4,3,2,5)(1,4,3,2,5)。

样例解释 2

如果不存在满足条件的数列 PP,请输出 -1。

样例解释 3

此外,以下输出也是正确答案之一。

2 1 3 4 5 9 7 8 10 12 11 6

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页