编程题 共5道

01 02 03 04 05

810 202509C语言二级真题-练习
编程题 共5道
01

不同的数字


题目描述

给定 n个正整数 a1,a2,…,an​,请统计出这个数列中含有多少个不同的整数。


输入格式

· 第一行:一个整数 n;

· 第二行:n 个整数 a1,a2,…,an


输出格式

一个整数,数列中含有多少个不同的整数。


输入样例#1
6
1 6 5 6 3 1
输出样例#1
4
输入样例#2
10
1 2 3 4 5 6 7 8 9 10
输出样例#2
10

说明提示

【数据范围】

1≤n,ai≤105


限制

时间限制:1000ms

内存限制:256MiB

20分
登录后作答
02

丢失的数字


题目描述

给定整数 n 和一个包含 n−1 个整数的序列,该序列由区间 [1,n] 内的 n−1 个互异整数组成。请找出该区间内缺失的唯一整数。


输入格式

第一行:一个整数n

第二行:n−1 个整数。


输出格式

一个整数,表示丢失的数字。


输入样例#1
6
1 2 5 6 3
输出样例#1
4
输入样例#2
10
7 2 3 9 4 8 1 6 10
输出样例#2
5

数据范围

1≤n≤2×104,输入序列保证合法。


限制

时间限制:1000ms

内存限制:256MiB

20分
登录后作答
03

维修任务


题目描述

在一条商业街上,有 100个店铺,店铺从左到右编号为 1 到 100。工人从店铺 x移动到 y发生的移动距离为 |y−x|。

现在需要完成 n个修理任务。其中第 i个任务要求工人移动到店铺 ai,报修任务分两类,用 L表示任务分配给小李,用 R 表示任务分配给小任。

必须按照报修的顺序来完成这些任务。请计算,完成所有修理任务后,两位工人的总移动的总距离。工人最开始的位置可以按照最理想的情况安排。


输入格式

第一行:一个整数 n表示搬运次数;

接下来 n行,每行一个整数 ai表示商店位置,一个字符 si​ 表示哪位工人完成。


输出格式

输出所有任务完成时的最小总距离。


输入样例#1
4

3 L

6 R

9 L

2 R
输出样例#1
10
输入样例#2
3

2 L

2 L

99 L

输出样例#2
97
输入样例#3
8

22 L

75 L

26 R

45 R

72 R

81 R

47 L

29 L

输出样例#3
154

说明提示

1≤N≤100;

1≤ai≤100;

si∈{'L','R'}。


限制

时间限制:1000ms

内存限制:256MiB

20分
登录后作答
04

硬币


题目描述

可以使用任意数量的 a元硬币、b 元硬币和 c 元硬币。

请找出恰好凑出 n 元所需的最小硬币总数。

若无法凑出,则输出 -1。


输入格式

· 第一行,整数 n;

· 第二行,三个整数表示 a,b,c。


输出格式

输出最小硬币总数(若无法凑出则输出 −1)。


输入样例#1

100

20 40 50

输出样例#1
2

输入样例#2

99

1 5 10

输出样例#2

14


说明提示

【数据范围】

· 1≤N≤109

· 1≤A≤B≤C≤109

· 保证最终最小硬币总数不超过104


限制

时间限制:1000ms

内存限制:256MiB

20分
登录后作答
05

游戏


题目描述

游戏中有 N 个敌人,第 i 个敌人有 hi​ 的血量,当敌人血量降至 0 或以下时该敌人被消灭。

按照顺序从第 1 个敌人开始打,时间 T从 0 开始,每次攻击前,先将 T 增加 1,若此时 T 为 3 的倍数,当前敌人掉 3 滴血,否则掉 1 滴血。

求消灭全部敌人所需时间。


输入格式

· 第一行输入一个正整数 N;

· 第二行输入 N个 正整数H1,H2…,Hn​。


输出格式

输出一行答案 T。


输入样例#1

3

3 1 4

输出样例#1

6

输入样例#2

6

3 14 15 9 2 6

输出样例#2

33


说明提示

【数据范围】

· 1≤ N≤ 2×105

· 1≤ Hi≤109


限制

时间限制:1000ms

内存限制:256MiB

20分
登录后作答