1507_toys

2022-5-16 18:17| 发布者: Hocassian| 查看: 39| 评论: 0|原作者: 肇庆学院ACM合集

摘要:
C:\Users\Administrator\Downloads\2019-10-12-10-14-2-89503866111600-Problem List-采集的数据-后羿采集器.html

Pro.ID

1507

Title

toys

Title链接

http://10.20.2.8/oj/exercise/problem?problem_id=1507

AC

14

Submit

92

Ratio

15.22%

时间&空间限制

  • Time Limit: 1000/500 MS (Java/Others)     Memory Limit: 32768/32768 K (Java/Others)
  • 描述

    John平时无聊的时候就制作一种叫做"宝中宝"的玩具,有多年了。"宝中宝"是一种源自俄罗斯的玩具。当你把一只"宝中宝"掰开两半,打开之后发现里面又有一只小一点的"宝中宝",把这只小一点的“宝中宝”再掰成两半,发现里面还有一只更小一点的"宝中宝"。重复几次,直到最里面那个最小的"宝中宝"不可再掰开。

    最近,John考虑把这种"宝中宝"的玩具形式,推广到其他玩具上。实际上,他已经设计出更一般形式的"宝中宝"玩具。其中一种就是:掰开两半之后,里面有多于一个的"宝中宝"。他就是希望在生产线上投产这种形式的玩具。

    John发明了一种符号系统来描述如何构造他的"宝中宝"玩具。用一个正整数来表示一个玩具,表示它的体积。确切地说,如果打开一个"宝中宝",就发现里面有若干个小"宝中宝",用n1, n2, …, nr表示它们,且n1 + n2 + … + nr < m。在这个情况下,就说宝中宝m直接包含宝中宝n1, n2, …, nr 。必须明确一点,在任一个n1, n2, …, nr里面包含的东西都不能称作直接包含在m中。

    广义的"宝中宝"可以记作一个非空的非零整数序列,形式如下:

    a1 a2 … aN

    "宝中宝k"在序列里就用两个整数 -k k 来表示,负数那个在序列里面是先于正数那个的。

    例如,序列

    -9 −7 −2 2 −3 −2 −1 1 2 3 7 9

    表示了由6个"宝中宝"组合而成的广义"宝中宝"玩具,这6个"宝中宝"可命名为1,2,2,3,7和9。注意到"宝中宝7"直接包含"宝中宝2"和"宝中宝3"。注意到第一个"宝中宝2"在第二个"宝中宝2"的左边,第二个"宝中宝2"直接包含"宝中宝1"。把第一个-2和最后一个2看作一对是错误的。

    另一方面,下面三个序列就不能表示广义"宝中宝"玩具:

    −9 −7 −2 2 −3 −1 −2 2 1 3 7 9

    因为"宝中宝2"的体积比"宝中宝1"要大,不能装入。

    −9 −7 −2 2 −3 −2 −1 1 2 3 7 −2 2 9

    因为"宝中宝7"和"宝中宝2"不能一起装入"宝中宝9"里面。

    −9 −7 −2 2 −3 −1 −2 3 2 1 7 9

    因为在"宝中宝3"的表述中存在递归错误。

    请你写一个程序帮John区分出成功的设计和失败的设计。

    输入

    输入包含了若干个测试用例,每个测试用例占据独立一行。每个测试用例是一个非零的整数序列,每个整数的绝对值不超过107

    输出

    Description

    John平时无聊的时候就制作一种叫做"宝中宝"的玩具,有多年了。"宝中宝"是一种源自俄罗斯的玩具。当你把一只"宝中宝"掰开两半,打开之后发现里面又有一只小一点的"宝中宝",把这只小一点的“宝中宝”再掰成两半,发现里面还有一只更小一点的"宝中宝"。重复几次,直到最里面那个最小的"宝中宝"不可再掰开。

    最近,John考虑把这种"宝中宝"的玩具形式,推广到其他玩具上。实际上,他已经设计出更一般形式的"宝中宝"玩具。其中一种就是:掰开两半之后,里面有多于一个的"宝中宝"。他就是希望在生产线上投产这种形式的玩具。

    John发明了一种符号系统来描述如何构造他的"宝中宝"玩具。用一个正整数来表示一个玩具,表示它的体积。确切地说,如果打开一个"宝中宝",就发现里面有若干个小"宝中宝",用n1, n2, …, nr表示它们,且n1 + n2 + … + nr < m。在这个情况下,就说宝中宝m直接包含宝中宝n1, n2, …, nr 。必须明确一点,在任一个n1, n2, …, nr里面包含的东西都不能称作直接包含在m中。

    广义的"宝中宝"可以记作一个非空的非零整数序列,形式如下:

    a1 a2 … aN

    "宝中宝k"在序列里就用两个整数 -k k 来表示,负数那个在序列里面是先于正数那个的。

    例如,序列

    -9 −7 −2 2 −3 −2 −1 1 2 3 7 9

    表示了由6个"宝中宝"组合而成的广义"宝中宝"玩具,这6个"宝中宝"可命名为1,2,2,3,7和9。注意到"宝中宝7"直接包含"宝中宝2"和"宝中宝3"。注意到第一个"宝中宝2"在第二个"宝中宝2"的左边,第二个"宝中宝2"直接包含"宝中宝1"。把第一个-2和最后一个2看作一对是错误的。

    另一方面,下面三个序列就不能表示广义"宝中宝"玩具:

    −9 −7 −2 2 −3 −1 −2 2 1 3 7 9

    因为"宝中宝2"的体积比"宝中宝1"要大,不能装入。

    −9 −7 −2 2 −3 −2 −1 1 2 3 7 −2 2 9

    因为"宝中宝7"和"宝中宝2"不能一起装入"宝中宝9"里面。

    −9 −7 −2 2 −3 −1 −2 3 2 1 7 9

    因为在"宝中宝3"的表述中存在递归错误。

    请你写一个程序帮John区分出成功的设计和失败的设计。

    Input

    输入包含了若干个测试用例,每个测试用例占据独立一行。每个测试用例是一个非零的整数序列,每个整数的绝对值不超过107

    Output

    对应每一个输入的用例,输出一行结果。

    如果这个用例能够正确表示一个广义"宝中宝",则输出如下形式的句子

    :-) Good job!

    否则输出:

    :-( Try again.

    Sample Input

    -9 -7 -2 2 -3 -2 -1 1 2 3 7 9
    -9 -7 -2 2 -3 -1 -2 2 1 3 7 9
    -9 -7 -2 2 -3 -1 -2 3 2 1 7 9
    -100 -50 -6 6 50 100
    -100 -50 -6 6 45 100
    -10 -5 -2 2 5 -4 -3 3 4 10
    -9 -5 -2 2 5 -4 -3 3 4 9

    Sample Output

    :-) Good job!
    :-( Try again.
    :-( Try again.
    :-) Good job!
    :-( Try again.
    :-) Good job!
    :-( Try again.

    Author

    样例输入

    -9 -7 -2 2 -3 -2 -1 1 2 3 7 9
    -9 -7 -2 2 -3 -1 -2 2 1 3 7 9
    -9 -7 -2 2 -3 -1 -2 3 2 1 7 9
    -100 -50 -6 6 50 100
    -100 -50 -6 6 45 100
    -10 -5 -2 2 5 -4 -3 3 4 10
    -9 -5 -2 2 5 -4 -3 3 4 9

    样例输出

    :-) Good job!
    :-( Try again.
    :-( Try again.
    :-) Good job!
    :-( Try again.
    :-) Good job!
    :-( Try again.

    提示

    作者


    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部