题目描述
小明同学想要去山上露营,为此他选择了 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;
}
悬五个关