TCS Codevita 9 预选赛轮问题
TCS Codevita 预选赛回合由 TCS 于 2020 年 8 月 15 日举行,以筛选出适合该公司作为软件工程师的候选人。本次编码回合的水平中等,并不容易。每个候选人必须至少解决一个问题才能获得下一轮的资格。编码轮由一组很好的问题组成,如下所示:
问题一:字符串对
问题描述
一个人将数字列表交给了字符串先生,但字符串先生只理解字符串。在字符串中,他也只能理解元音。字符串先生需要您的帮助才能找到加起来为某个数字 D 的对的总数。计算数字 D 的规则如下:-
获取所有数字并将它们转换为文本表示形式。
接下来,总结所有文本表示中元音的数量,即 {a, e, i, o, u}。
这个和是数字 D
现在,一旦已知数字 D,找出输入中所有无序数字对,其总和等于 D。请参阅示例部分以更好地理解。
约束
1 <= N <= 100
1 <= 第二行输入中每个元素的值 <= 100
数字 100,如果它出现在输入中,则应将其转换为文本表示形式,如百而不是百。因此,数字 100 中的元音数应该是 2 而不是 4
输入
第一行包含一个整数 N,表示要作为输入处理的元素数
第二行包含以空格分隔的 N 个数字
输出
输入中总和为数字 D 的对数的文本表示的小写表示
注意:-(如果计数超过 100 打印“greater 100”)
例子
Input : 5
1 2 3 4 5
Output : one
Input : 3
7 4 2
Output : zero
问题 2:选举
问题描述
选举正在进行中,有两个候选人 A 和 B,相互竞争。有一排选民,在这个队列中,有些人是 A 的支持者,有些是 B 的支持者。他们中的许多人是中立的。选举的命运将取决于中立选民投给哪一方。 A 的支持者和 B 的支持者试图赢得中立选民的选票。
可以做到这一点的方式解释如下:
1. 投票队列用三个字符表示,即{-, A, B}。 - 表示中立候选人,A 表示候选人 A 的支持者,B 表示候选人 B 的支持者。
2. A 的支持者只能向队列的左侧移动。
3. B 的支持者只能向队列的右侧移动。
4.由于时间紧迫,A和B的支持者将同时移动。
5. 他们都会试图通过在队列中的方向移动来影响中立选民。如果 A 的支持者在 B 的支持者到达他之前到达中立选民,那么该中立选民将成为候选人 A 的支持者。
6. 同样,如果 B 的支持者在 A 的支持者到达他之前到达中立选民,则该中立选民将成为候选人 B 的支持者。
7. 最后,如果两者同时达成,投票者将保持中立。中立的投票不能决定选举的结果。
8. If finally, the queue has more votes for candidate A, then A wins the election.如果 B 有更多选票,则 B 赢得该选举。如果两者的票数相等,那么这将是一个联合政府。
请参阅示例部分以了解支持者如何影响中立选民的动态。
你的任务是找出选举的结果。
注意:没有所有投票都是中立的测试用例。
输入
第一行包含一个整数,它是选民队列的长度。
第二行包含字符{-, A, B},其中表示
· A = 支持候选人 A 的选民
· B = 支持候选人 B 的选民
· – = 中立选民
输出
打印具有最大票数的候选人。如果他们的票数相等,请打印“联合政府”。
例子
Input :14
–AB–AB—A–
Output : A
Input : 4
A—
Output : A
问题 3:移动平均线
问题描述
股票价格是动态的。它的值可以在几分之一秒内更改多次,也可以在几分钟内保持不变。分析股票价格变化的动态可以为该股票即将出现的上升趋势或下降趋势提供指示。一个这样的指标是简单的移动平均线。现在,Harry 想根据移动平均线 (MA) 分析股票的价格趋势。
让我们分别考虑 2 天和 4 天的移动平均线。 2 天移动平均线是通过取连续 2 天收盘价的平均值来计算的。 4 天移动平均线是通过取连续 4 天收盘价的平均值来计算的。现在,根据专家的说法,每当一条较快的移动平均线(2 日均线)从下方切入较慢的移动均线(4 日均线),则表明该股呈上升趋势。同样,只要较快的移动平均线(2 日均线)从上方切入较慢的移动平均线(4 日均线),则表明股票呈下跌趋势。
帮助 Harry 计算在提供数据的给定时间内上升趋势和下降趋势的数量。
在这张图中,有三条线表示股票收盘价,两天和四天的移动平均线。现在我们可以看到,在 13 日和 15 日之间有一个交叉点。当较少天数的移动平均线向下切割较多天数的移动平均线时,称为下降趋势,反之亦然。
注 1 – 2 日均线将没有第 1 日移动平均线。同样,对于 4 天 MA,将没有第 1 天、第 2 天、第 3 天移动平均线。 X 日和 Y 日移动平均曲线一般不会有 X-1、X-2、Y-1、Y-2 等日点。
注 2 – 所有计算必须精确到小数点后 6 位。
输入
第一行包含两个空格分隔的整数,它们是移动平均天 X 和 Y。
第二行包含一个整数 N,表示股票价格的数量。
第三行包含 N 个空格分隔的十进制值,表示 N 天的股票收盘价。
输出
打印股票将出现上升趋势或下降趋势的总次数。
例子
Input : 3 5
11
4.55 5.4 5.65 5.4 5.2 4.85 4.95 5.05 4.9 4.9 4.95
Output : 3
Input : 2 4
14
69.849998 72.900002 74.449997 77.300003 75.050003 74.349998 75.449997 76.300003 74 69.349998 65.349998 67.349998 67.599998 68.449997
Output : 4
问题四:慢跑场
问题描述
有4个大小相等的圆形场地。它们的圆周不相交。给出了每个圆的中心距最左边圆心的半径和距离。
如下图所示,有 4 名慢跑者可以同时从四个圆的圆周上指定为 {a,b,c,d} 的任何点开始。所有 4 名慢跑者都沿着该场地的圆周在不同的场地慢跑。他们可以顺时针(从左到右)或逆时针(从右到左)方向慢跑。最后,他们还可以以不同的速度慢跑。
给定所有 4 个慢跑者的起始位置、慢跑方向和慢跑速度,求自慢跑开始以来的给定时间点,四个慢跑者之间的 3 段长度之和。
输入
第一行包含 4 个整数,每个整数表示以下内容
R 表示所有四个圆的半径
D1 表示第二个圆的中心从左边到最左边的圆心的距离
D2表示从左边到最左边的圆心的第三个圆心的距离
D3表示最后一个圆的中心从左边到最左边的圆的中心的距离
第二行包含 4 个空格分隔的整数,表示与 4 个圆中的每一个的点 a 的角度,其中 0 度表示点 a 本身,90 度表示点 b,180 度表示点 c,270 度表示点 d。
第三行包含 4 个空格分隔的整数,表示以度/秒为单位的速度。
第四行包含 4 个空格分隔的整数,表示慢跑者的跑步方向(0=顺时针,1=逆时针)。
第五行包含整数 N,表示自慢跑开始以来的时间(以秒为单位)。
输出
打印 N 秒后四个慢跑者之间 3 段长度的总和,四舍五入到最接近的整数。
例子
Input : 10 25 50 75
0 0 0 0
1 1 1 1
1 1 1 1
90
Output : 75
Input : 10 25 50 75
0 0 0 0
1 2 3 4
0 0 0 0
90
Output : 91
问题 5:动物园设计
问题描述
阿曼是一个想建动物园的富商。他想为陆生和水生动物制作围栏。陆生动物将有两种类型,即草食性和肉食性动物。所以会有三种不同的外壳。
大象、鹿等食草动物是主要景点。同样,狮子和老虎是食肉动物的主要吸引力。最后,海豚和鲨鱼是游客水上运动的主要景点。
作为一名精明的商人,阿曼意识到,为了在不影响景点的情况下最大限度地降低建造动物园的成本,他必须决定为每种动物分配多少面积。每种动物类型都需要一定的区域才能茁壮成长。这反过来会影响区域分配,这反过来又会产生成本影响。
你的任务是帮助 Aman 锻炼数学,以使动物园建设成本在以下约束条件下最小化:
动物园需要最少 X 种草食动物、Y 种食肉动物和 Z 种水生动物
不同类型的动物需要不同的最小面积才能茁壮成长
对于给定类型的动物,所需的最小面积相同
为每种动物类型分配的总面积也有最大限制
围栏等费用包含在围墙费用中
从面积和成本计算中排除游客通道等基本要素
考虑以平方米为单位的所有面积和以卢比为单位的成本。
输入
第一行包含三个空格分隔的整数,表示为每种类型的动物建造围栏的每平方米成本。分别是草食性、肉食性和水生性
第二行包含三个空格分隔的整数,表示可以分配给每种动物的最大区域,即。分别是草食性、肉食性和水生性
接下来的三行,每行将包含两个空格分隔的整数 M 和 N,用于每种类型的动物,即。分别是草食性、肉食性和水生性,其中 M 表示该类型动物的最小数量,N 表示该动物类型所需的最小面积
最后一行包含一个整数,表示需要建造动物园的土地总面积
输出
包含建造动物园所需的最低成本的单个整数。
例子
Input : 10000 1000 1500
250 250 300
5 5
15 5
10 10
500
Output : 837500
解释
·为食草动物建造围栏的成本很高。然而,由于我们需要根据给定的限制容纳 5 只食草动物,因此需要为食草动物分配 25 平方米的土地。
·由于为肉食动物建造围栏的成本是最便宜的,我们能够为它们分配我们可以分配的最大限制。因此,我们为食肉动物分配了 250 平方米。
·剩余的225平方米因此可以分配给水上运动而不会违反任何限制。
·因此,按照所有约束条件建造动物园的最小成本为 (25 * 10000 + 250 * 1000 + 225 * 1500) = 837500
示例 2
Input : 100 1000 1500
250 250 300
5 5
15 5
10 10
500
Output : 325000
解释
·由于为食草动物建造围栏的成本是最便宜的,我们能够为它们分配我们可以分配的最大限制。因此,我们为食草动物分配了 250 平方米。
·建造水上运动围栏的成本高。但是,由于我们需要根据给定的限制容纳 10 只水生动物,因此需要为水生动物分配 100 平方米的土地。
·剩余的150平方米因此可以分配给食肉动物而不会违反任何限制。
·因此,按照所有约束条件建造动物园的最低成本为 (250 * 100 + 150 * 1000 + 100 * 1500) = 325000