2020智算之道第二次第一题

21 篇文章 0 订阅

小明正在上楼梯,当小明逐渐接近某层楼的时候,这层楼的声控灯检测到小明的脚步声便会亮起来,当小明逐渐远去的时候,声控灯由于一段时间内没检测到声音又会灭下去。

由于小明是匀速上楼的,而且他的速度把控得刚刚好,脚步声的音量也十分恰当,使得灯的亮灭呈现出这样的状态:他当前所在的楼层的声控灯是亮起的,他即将抵达的下一层楼的声控灯是亮起的,他刚刚离开的那层楼的声控灯也是亮起的。

现在你站在楼的外面,通过窗户看到了灯的亮灭状态,请推断小明现在在几楼?
输入格式

每个测试点包含以下内容:

第一行给出一个整数 TTT,表示接下来给出 TTT 组测试数据

每组测试数据包含两行

第一行包含两个数 n,mn,mn,m,表示这栋楼一共有 nnn 层,当前有 mmm 盏灯是亮起的,而其余灯都是熄灭的

第二行包含 mmm 个整数,这些整数按照从小到大的顺序给出亮起的灯的序号

保证输入数据是符合实际情况的
输出格式

输出 TTT 行,每行包含一个数字,按照输入的顺序依次给出每组测试数据的答案。如果答案不确定,请输出 −1-1−1
数据规模与约定

对于 50%50%50% 的数据,1≤T≤10,3≤n≤100,m=31 \le T \le 10, 3 \le n \le 100, m=31≤T≤10,3≤n≤100,m=3

对于 100%100%100% 的测试点,1≤T≤1000,1≤n≤109,1≤m≤31 \le T \le 1000, 1 \le n \le 10^9, 1 \le m \le 31≤T≤1000,1≤n≤109,1≤m≤3
样例输入

2
5 3
1 2 3
5 2
1 2

样例输出

2
1

#include<iostream>
using namespace std;

void main()
{
	int num, step[1001], l,n,m,jg[100],p=0;
	scanf_s("%d", &num);
	int s = num,j=0;
	int i = 0;
	while (j!=num)
	{
		scanf_s("%d %d", &n, &m);
		for (int i = 0; i < m; i++)
		{
			scanf_s("%d", &step[i]);
		}
		jg[j] = step[m-1]-1;
		j++;
		
	}
	while (num--)
	{
		if (jg[p] <= n&&jg[p]!=0) {
			printf("%d\n", jg[p]);
		}
		else
		{
			printf("-1\n");
		}
			p++;
	}
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值