直到比赛结束,也不会做
  • 板块灌水区
  • 楼主yvanshenmi
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/12/3 10:38
  • 上次更新2023/12/3 10:43:47
查看原帖
直到比赛结束,也不会做
1228557
yvanshenmi楼主2023/12/3 10:38
题目描述
小明同学想要去山上露营,为此他选择了 n 个地点,其中第 i 个地点海拔高度为 hi。

山上不同高度温度各不相同,高度为 x 的位置温度为 t-x*0.006 度。

小明觉得自己在 a 度的温度下最舒服,因此他选择的地点的温度要尽可能靠近 a 度。

请你帮助他找到最合适的地点。

数据保证答案有唯一解。

输入输出格式
输入格式:
输入共三行。
第一行一个整数 n 表示有 n 个地点可供选择。
第二行两个整数 t,a 如题所示。
第三行 n 个整数,其中第 i 个数表示第 i 个地点的海拔高度。

输出格式:
输出一行一个数表示选择的最合适的地点。

输入输出样例
输入样例#1: 
2
12 8
3000 1000
输出样例#1:
2
输入样例#2: 
3
21 -11
81234 94124 52141
输出样例#2:
3
补充说明
【样例解释】
样例一:
地点 1 温度为:12-3000*0.006=-6。
地点 2 温度为:12-1000*0.006=6。
因此 2 号地点更接近给定的 8 度。

【数据范围】
       对于 100% 的数据,1 <= n <= 1000, 0<=t<=50,-60<=a<=t, 0<=hi<=1e5,数据保证有唯一解。
时间限制:1s 空间限制:512M

本人代码

#include<bits/stdc++.h>
using namespace std;
int main() {
	long long b[100000],t,a,n,s=0,m=0;
	cin>>n;
	cin>>t>>a;
	for(long i=1; i<=n; i++) {
		cin>>b[i];
		if((t-(b[1]*0.006))-a<1)s+=(t-(b[i]*0.006))-a;
		if((t-(b[i-1]*0.006))-a>1)m+=(t-(b[i]*0.006))-a;
		if(a-s>m-a) {
			cout<<"2";
			return 0;
		}
		if(a-s<m-a) {
			cout<<"1";
			return 0;
		}
	}
	return 0;
}

悬五个关

2023/12/3 10:38
加载中...