抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

总时间限制: 1000ms 内存限制: 65536kB

描述

有三个字符串 S,S1,S2,其中,S 长度不超过 300,S1 和 S2 的长度不超过 10。想检测 S1 和 S2 是否同时在 S 中出现,且 S1 位于 S2 的左边,并在 S 中互不交叉(即,S1 的右边界点在 S2 的左边界点的左侧)。计算满足上述条件的最大跨距(即,最大间隔距离:最右边的 S2 的起始点与最左边的 S1 的终止点之间的字符数目)。如果没有满足条件的 S1,S2 存在,则输出 - 1。

例如,S = “abcd123ab888efghij45ef67kl”, S1=“ab”, S2=“ef”,其中,S1 在 S 中出现了 2 次,S2 也在 S 中出现了 2 次,最大跨距为:18。

输入

三个串:S, S1, S2,其间以逗号间隔(注意,S, S1, S2 中均不含逗号和空格);

输出

S1 和 S2 在 S 最大跨距;若在 S 中没有满足条件的 S1 和 S2,则输出 - 1。

样例输入

总时间限制: 1000ms 内存限制: 65536kB

描述

给一段英文短文,单词之间以空格分隔(每个单词包括其前后紧邻的标点符号)。请将短文重新排版,要求如下:

每行不超过 80 个字符;每个单词居于同一行上;在同一行的单词之间以一个空格分隔;行首和行尾都没有空格。

输入

第一行是一个整数 n,表示英文短文中单词的数目。其后是 n 个以空格分隔的英文单词(单词包括其前后紧邻的标点符号,且每个单词长度都不大于 40 个字母)。

输出

排版后的多行文本,每行文本字符数最多 80 个字符,单词之间以一个空格分隔,每行文本首尾都没有空格。

样例输入

总时间限制: 1000ms 内存限制: 65536kB

描述

输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。

输入

第一行为整数 k,表示有 k 组数据。
每组数据有多行组成,表示一个矩阵:
第一行分别为矩阵的行数 m 和列数 n(m < 100,n < 100),两者之间以空格分隔。
接下来输入的 m 行数据中,每行包含 n 个整数,整数之间以空格作为间隔。

输出

输出对应矩阵的边缘元素和,一个一行。

样例输入

1
2
3
4
5
6
7
8
9
10
2
4 4
1 1 1 1
0 0 0 0
1 0 1 0
0 0 0 0
3 3
3 4 1
3 7 1
2 0 1

总时间限制: 1000ms 内存限制: 65536kB

描述

给定 N 个整数,将这些整数中与 M 相等的删除
假定给出的整数序列为:1,3,3,0,-3,5,6,8,3,10,22,-1,3,5,11,20,100,3,9,3
应该将其放在一个链表中,链表长度为 20
要删除的数是 3,删除以后,链表中只剩 14 个元素:1 0 -3 5 6 8 10 22 -1 5 11 20 100 9

要求:必须使用链表,不允许使用数组,也不允许不删除元素直接输出
程序中必须有链表的相关操作:建立链表,删除元素,输出删除后链表中元素,释放链表
不符合要求的程序即使通过,也会算作 0 分

输入

输入包含 3 行:
第一行是一个整数 n (1 <= n <= 200000),代表数组中元素的个数。
第二行包含 n 个整数,代表数组中的 n 个元素。每个整数之间用空格分隔;每个整数的取值在 32 位有符号整数范围以内。
第三行是一个整数 k,代表待删除元素的值(k 的取值也在 32 位有符号整数范围内)。

输出

输出只有 1 行:
将数组内所有待删除元素删除以后,输出数组内的剩余元素的值,每个整数之间用空格分隔。

样例输入

总时间限制: 1000ms 内存限制: 65536kB

描述

在一个有 180 人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。

输入

第一行为整数 n,表示有 n 个学生,n ≤ 180。此后每行包含一个字符串和两个整数,分别表示学生的名字(名字第一个字母大写,其余小写,不含空格,且长度小于 20)和出生月 (1 ≤ m ≤ 12) 日 (1 ≤ d ≤ 31)。名字、月、日之间用一个空格分隔

输出

每组生日相同的学生,输出一行,其中前两个数字表示月和日,后面跟着所有在当天出生的学生的名字,数字、名字之间都用一个空格分隔。对所有的输出,要求按日期从前到后的顺序输出。 对生日相同的名字,按名字从短到长按序输出,长度相同的按字典序输出。如没有生日相同的学生,输出”None”

样例输入

1
2
3
4
5
6
7
6
Avril 3 2
Candy 4 5
Tim 3 2
Sufia 4 5
Lagrange 4 5
Bill 3 2

总时间限制: 1000ms 内存限制: 65536kB

描述

在某个字符串(长度不超过 100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用 "$“标注,不能匹配的右括号用”?" 标注.

输入

输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母,字符串长度不超过 100
注意:cin.getline (str,100) 最多只能输入 99 个字符!

输出

对每组输出数据,输出两行,第一行包含原始输入字符,第二行由 "","?" 和空格组成,"","?"和空格组成,"“和”?" 表示与之对应的左括号和右括号不能匹配。

样例输入

1
2
((ABCD(x)
)(rttyy())sss)(

总时间限制: 1000ms 内存限制: 65536kB

描述

给定一个 n*n 的矩阵(3 <= n <= 100,元素的值都是非负整数)。通过 (n-1) 次实施下述过程,可把这个矩阵转换成一个 1*1 的矩阵。每次的过程如下:

首先对矩阵进行行归零:即对每一行上的所有元素,都在其原来值的基础上减去该行上的最小值,保证相减后的值仍然是非负整数,且这一行上至少有一个元素的值为 0。

接着对矩阵进行列归零:即对每一列上的所有元素,都在其原来值的基础上减去该列上的最小值,保证相减后的值仍然是非负整数,且这一列上至少有一个元素的值为 0。

然后对矩阵进行消减:即把 n*n 矩阵的第二行和第二列删除,使之转换为一个 (n-1)*(n-1) 的矩阵。

下一次过程,对生成的 (n-1)*(n-1) 矩阵实施上述过程。显然,经过 (n-1) 次上述过程, n*n 的矩阵会被转换为一个 1*1 的矩阵。

请求出每次消减前位于第二行第二列的元素的值。

输入

总时间限制: 1000ms 内存限制: 65536kB

描述

给定一个 5*5 的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。
鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。
例如:在下面的例子中(第 4 行第 1 列的元素就是鞍点,值为 8 )。
11 3 5 6 9
12 4 7 8 10
10 5 6 9 11
8 6 4 7 2
15 10 11 20 25

输入

输入包含一个 5 行 5 列的矩阵

输出

如果存在鞍点,输出鞍点所在的行、列及其值,如果不存在,输出 "not found"

样例输入

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

总时间限制: 1000ms 内存限制: 65536kB

描述

4 名专家对 4 款赛车进行评论
1)A 说:2 号赛车是最好的;
2)B 说:4 号赛车是最好的;
3)C 说:3 号赛车不是最好的;
4)D 说: B 说错了。
事实上只有 1 款赛车最佳,且只有 1 名专家说对了,其他 3 人都说错了。
请编程输出最佳车的车号,以及说对的专家。

输入

无输入。

输出

输出两行。第一行输出最佳车的车号(1-4 中的某个数字)。第二行输出说对的专家(A-D 中的某个字母)。

样例输入

1
(无)

总时间限制: 1000ms 内存限制: 65536kB

描述

有一种细菌分为 A、B 两个亚种,它们的外在特征几乎完全相同,仅仅在繁殖能力上有显著差别,A 亚种繁殖能力非常强,B 亚种的繁殖能力很弱。在一次为时一个 小时的细菌繁殖实验中,实验员由于疏忽把细菌培养皿搞乱了,请你编写一个程序,根据实验结果,把两个亚种的培养皿重新分成两组。

输入

输入有多行,第一行为整数 n(n≤100),表示有 n 个培养皿。
其余 n 行,每行有三个整数,分别代表培养皿编号,试验前细菌数量,试验后细菌数量。

输出

输出有多行:
第一行输出 A 亚种培养皿的数量,其后每行输出 A 亚种培养皿的编号,按繁殖率升序排列。
然后一行输出 B 亚种培养皿的数量,其后每行输出 B 亚种培养皿的编号,也按繁殖率升序排列。

样例输入

1
2
3
4
5
6
5
1 10 3456
2 10 5644
3 10 4566
4 20 234
5 20 232