p1m2

 Accepts: 1003
 Submissions: 4595
 Time Limit: 2000/1000 MS (Java/Others)
 Memory Limit: 131072/131072 K (Java/Others)
Problem Description

度度熊很喜欢数组!!

我们称一个整数数组为稳定的,若且唯若其同时符合以下两个条件:

1. 数组里面的元素都是非负整数。
2. 数组里面最大的元素跟最小的元素的差值不超过 1。

举例而言,[1,2,1,2] 是稳定的,而 [−1,0,−1] 跟 [1,2,3] 都不是。

现在,定义一个在整数数组进行的操作:

* 选择数组中两个不同的元素 a 以及 b,将 a 减去 2,以及将 b 加上 1。

举例而言,[1,2,3] 经过一次操作后,有可能变为 [−1,2,4] 或 [2,2,1]。

现在给定一个整数数组,在任意进行操作后,请问在所有可能达到的稳定数组中,拥有最大的『数组中的最小值』的那些数组,此值是多少呢?

Input

输入的第一行有一个正整数 T,代表接下来有几组测试数据。

对于每组测试数据:
第一行有一个正整数 N。
接下来的一行有 N 个非负整数 xi,代表给定的数组。

* 1≤N≤3×105
* 0≤xi≤108
* 1≤T≤18
* 至多 1 组测试数据中的 N>30000

Output

对于每一组测试数据,请依序各自在一行内输出一个整数,代表可能到达的平衡状态中最大的『数组中的最小值』,如果无法达成平衡状态,则输出 −1。

Sample Input
2
3
1 2 4
2
0 100000000
Sample Output
2
33333333
 
 
 
操作次数满足有序性,二分枚举答案即可。
 
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<algorithm>
#define MAX 300005
#define INF 0x3f3f3f3f
#define MOD 1000000007
using namespace std;
typedef long long ll; int a[MAX]; int main()
{
int t,x,y,n,i;
scanf("%d",&t);
while(t--){
int l=,r=,m=;
scanf("%d",&n);
for(i=;i<=n;i++){
scanf("%d",&a[i]);
}
int maxx=-;
while(l<=r){
m=(l+r)/;
ll c1=,c2=;
for(i=;i<=n;i++){
if(m<a[i]){
c2+=(a[i]-m)/;
}
else if(a[i]<m){
c1+=m-a[i];
}
}
if(c1<=c2){
maxx=max(maxx,m);
l=m+;
}
else{
r=m-;
}
}
printf("%d\n",maxx);
}
return ;
}

最新文章

  1. [LeetCode] Power of Two 判断2的次方数
  2. Java-异常Throwable,Exception,Error
  3. 基于Redis主从复制读写分离架构的Session共享
  4. Java中resourceBundle和Properties的区别
  5. 第一章 USB Type C的基本原理
  6. Corrupted MAC on input
  7. 开源一个适用iOS的数据库表结构更新机制的代码
  8. http post/get 2种使用方式
  9. python3 - 文本读音器
  10. HTML5为输入框添加语音输入功能
  11. 交换机的vlan文章
  12. spring 测试类test测试方法
  13. Zookeeper集群节点数量为什么要是奇数个?
  14. Python 扩展插件
  15. mysql主从配置思路
  16. Windows Server2008 R2中的角色
  17. SpringMVC中异常处理详解
  18. ADT下载地址(含各版本)
  19. C++的一些知识点摘抄(创建基本类 高级类)
  20. Mac 必备工具之 brew

热门文章

  1. [转]Struts form传值
  2. 在WePY中实现了小程序的组件化开发,组件的所有业务与功能在组件本身实现,组件与组件之间彼此隔离,上述例子在WePY的组件化开发过程中,A组件只会影响到A所绑定的myclick
  3. php函数: set_error_handler
  4. json字符串转集合或者数组
  5. (图解)Description Resource Path Location Type Java compiler level does not match the version of
  6. 算法(Algorithms)第4版 练习 1.3.26
  7. 如何用命令行删除EasyBCD开机选择项?
  8. tkinter之button
  9. dmidecode 命令
  10. 集训Day9