Codeforces Round #570 (Div. 3) B. Equalize Prices
作者:互联网
原文链接https://codeforces.com/contest/1183/problem/B
题意:进行Q组测试,在每组中有长度为n的数组a[i],然后现在给你一个K,问你找到一个bi使得|ai-bi|<=k并且bi最大。如果找不到,就输出-1.
思路:这个也就关系到,最大值max,最小值min,和K,至于中间的数,我们不用去管,现在一个排序,如果max-min<=2*k,那么就输出min+k,否者就输出-1。(为什么要在2*k的范围找???想想看)
代码:
#include"iostream" #include"algorithm" #include"cstring" #include"cstdio" #include"cmath" using namespace std; int main(){ int q; while(cin>>q){ while(q--){ int flag=-2; long long n,k,a[100]; cin>>n>>k; memset(a,0,sizeof(a)); for(int i=0;i<n;i++) cin>>a[i]; sort(a,a+n); if(a[n-1]-a[0]<=2*k) cout<<a[0]+k<<endl; else cout<<"-1"<<endl; } } return 0; }
标签:int,max,570,Codeforces,long,cin,while,Equalize,include 来源: https://www.cnblogs.com/huangdf/p/12222357.html