编程题 共5道

01 02 03 04 05

104 | 202412C语言二级真题-考试
编程题 共5道
01

逆行

网上有个段子说:妻子在家听广播,听到某高速路上有一辆车在逆行,想到丈夫在那条高速上行驶,就打电话对丈夫说:“老公啊,你走的那条高速上有一辆车在逆行,你小心点。”她丈夫说:“何止啊!我看好几百辆车都在逆行!”


现在我们查了一下高速公路上拍到的好几百辆车的时速,发现有的朝东开,有的朝西开,都不知道是谁在逆行了…… 于是让我们简单粗暴地解决这个问题:朝哪个方向开的车多,哪个方向就是正确的,另一方就判为逆行(开玩笑的千万嫑当真)。现在就请你统计一下,有多少辆车是逆行的。


时间限制:1000

内存限制:65536

输入

输入第一行给出一个正整数 N,为高速公路上拍到的车辆数,题目保证这是一个不超过 1000 的奇数。第二行给出 N 个整数,为每辆车的时速。我们用正数表示朝东开的时速,负数表示朝西开的时速。题目保证时速(绝对值)均不超过 200,并且时速没有 0,即没有一辆车是停在高速公路上不动的。

输出

在一行中输出逆行的车辆数。

样例输入

7

85 -90 110 95 112 -120 -70

样例输出

3

0分
登录后作答
02

为 i 做 e

“为 i 做 e”是最近新出的流行梗。这里的 i 和 e 指 MBTI 人格测试中的不同性格,i 是社恐,e 是外向。“为 i 做 e”就是在一群内向的人中促使自己变成外向(奇奇怪怪无用的知识又增加了)。


给定某次大型活动中的餐桌安排,请你判断一下哪几桌的客人需要“为 i 做 e”了。


时间限制:6000

内存限制:65536

输入

输入第一行首先给出正整数 n(≤ 105),随后 n 行,每行给出一个人的代号和其性格,其中代号由 8 位数字组成,性格是单个字母 i 或 e,其间以空格分隔。 接下来是餐桌安排。首先给出正整数 m(≤ 103),为餐桌数量,随后 m 行,每行给出一个正整数 k(≤ 10)以及该桌 k 位客人的代号,用空格分隔。第 i 行对应的是第 i 桌的信息(1 ≤ i ≤ m)。题目保证没有人在餐桌安排中重复出现,且餐桌上每个人的性格都已给出。

输出

如果一桌客人全是 i 人,则意味着有人要“为 i 做 e”了。请在一行中按递增序输出这些桌的桌号。数字间以 1 个空格分隔,行首尾不得有多余空格。如果这样的餐桌不存在,则在一行中输出 None。

样例输入

样例1:

10

00000000 i

12345678 e

23468270 i

78827341 e

67476289 i

35748108 e

99999999 i

40926483 i

88472901 i

55032849 i

3

3 00000000 67476289 99999999

4 12345678 78827341 35748108 55032849

3 23468270 40926483 88472901


样例2:

10

00000000 i

12345678 e

23468270 i

78827341 e

67476289 i

35748108 e

99999999 i

40926483 i

88472901 i

55032849 i

2

4 78827341 35748108 55032849 00000000

6 12345678 67476289 99999999 23468270 40926483 88472901

样例输出

样例1:

1 3


样例2:

None

0分
登录后作答
03

吃火锅

本题要求你实现一个程序,自动检查你朋友给你发来的信息里有没有 `chi1 huo3 guo1`。


时间限制:1000

内存限制:65536

输入

输入每行给出一句不超过 80 个字符的、以回车结尾的朋友信息,信息为非空字符串,仅包括字母、数字、空格、可见的半角标点符号。当读到某一行只有一个英文句点 . 时,输入结束,此行不算在朋友信息里。

输出

首先在一行中输出朋友信息的总条数。然后对朋友的每一行信息,检查其中是否包含 chi1 huo3 guo1,并且统计这样厉害的信息有多少条。在第二行中首先输出第一次出现 chi1 huo3 guo1 的信息是第几条(从 1 开始计数),然后输出这类信息的总条数,其间以一个空格分隔。题目保证输出的所有数字不超过 100。 如果朋友从头到尾都没提 chi1 huo3 guo1 这个关键词,则在第二行输出一个表情 `-_-#`。

样例输入

样例1:

Hello!

are you there?

wantta chi1 huo3 guo1?

that's so li hai le

our story begins from chi1 huo3 guo1 le

.


样例2:

Hello!

are you there?

wantta qi huo3 guo1 chi1huo3guo1?

that's so li hai le

our story begins from ci1 huo4 guo2 le

.

样例输出

样例1:

5

3 2


样例2:

5

-_-#

0分
登录后作答
04

就不告诉你

做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地微笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。


时间限制:1000

内存限制:65536

输入

输入在第一行给出两个不超过 1000 的正整数 A 和 B,其间以空格分隔。

输出

在一行中倒着输出 A 和 B 的乘积。

样例输入

5 7

样例输出

53

0分
登录后作答
05

排课

排课是个世界难题。


假设每个学期有 N 个教学班的课需要排,每周有 M 个时间段可以上课,全校共有 K 间教室,不同排课组合方案的个数可能会超过整个宇宙的质子数。更为复杂的是,每个学期排课前,学校还会收集每个教学班任课老师不能上课的时间段,还要保证排课不与老师的时间安排起冲突。


当然,本题不是要求你实现一个排课算法,而是要求你实现一个排课方案检查算法。即给定每个教学班上课的时间和地点,你需要检查这个时间段和地点是否只有这一个班上课,并且这个上课时间不会正好是任课老师不能上课的时间。


时间限制:5000

内存限制:65536

输入

输入在第一行中给出三个正整数:N(≤ 104)为教学班总数;M(≤ 40)为一周内上课时间段的个数;K(≤ 103)为教室总数。数字间以空格分隔。以下我们就将教学班、时间段、教室分别从 1 开始顺序编号。 随后 N 行,每行给出一个教学班的任课教师时间限制和排课的信息。格式如下: L T[1] ... T[L] Time Room 其中 L 是任课教师的时间限制数量(< M),后面给出 L 个该老师不能上课的时间段编号;Time 是该教学班安排的上课时间段编号,Room 是上课教室编号。

输出

如果给定的课表安排是完全无冲突的,则在一行内输出:Perfect Arrangement for N classes! 其中 N 是教学班数量。 如果课表有冲突,则需要输出冲突原因。我们首先假设教学班是按照编号递增序进行排课的,教学资源先到先得。如果后面安排的教学班 A 跟前面的教学班 B 排在了同一个时间和地点,则在一行中输出 ERROR: Conflict between A and B.;如果教学班 A 的上课时间跟任课教师有冲突,则在一行中输出 ERROR: Conflict with instructor for A.。当两种冲突都发生时,分两行输出,先输出教学班冲突的信息。发生冲突的教学班暂不安排。

样例输入

样例1:

5 20 10

2 1 5 10 7

0 10 3

5 2 4 6 8 10 3 3

3 10 3 18 15 1

1 20 19 10


样例2:

5 20 10

2 1 5 10 7

0 10 7

5 2 4 6 8 10 6 3

3 10 3 18 6 3

2 20 10 10 7

样例输出

样例1:

Perfect Arrangement for 5 classes!


样例2:

ERROR: Conflict between 2 and 1.

ERROR: Conflict with instructor for 3.

ERROR: Conflict between 5 and 1.

ERROR: Conflict with instructor for 5.

0分
登录后作答