被百度的大数字题目难倒了,不愧是搞科学的厂子

package baidu;

import java.util.Arrays;
import java.util.Scanner;

public class Problem22 {

public static long solve(long[] array) {
int len = array.length;
int res = 0;
Arrays.sort(array);
if(array[len-1]<len) return 0;
long a = array[len-1];
int index = len - 2;
long b = array[index];
while(a==b&&index>0) {
b=array[--index];
}
long gap = a - b;
long n = gap / (len+1) ;
long k = n-1;
if(k<=0) {
k=1;
}
for(int i=0; i<len-1; i++) {
if(array[i]==array[len-1]) {
array[i] -= k*len;
} else {
array[i] += k;
}
}
array[len-1] -= k*len;
return k;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int num = Integer.parseInt(str);
long[] data = new long[num];
String test = sc.nextLine();
String[] split = test.split(" ");
for(int i=0; i<num; i++) {
data[i] = Long.parseLong(split[i]);
}
long k = 0;
long temp = 0;
while((temp=solve(data))!=0) {
k += temp;
}
System.out.println(k);
}
}
/**
3
737473475237 88435823485328 83485238458345
*/
#笔试题目##百度##吐槽#
全部评论
啥题啊
点赞 回复 分享
发布于 2019-09-24 22:09

相关推荐

投递长鑫存储等公司7个岗位
点赞 评论 收藏
分享
程序员小白条:你不是有一段实习了吗,现在找中大厂实习?过段时间要秋招了
我的简历长这样
点赞 评论 收藏
分享
06-12 16:23
已编辑
小米_软件开发(准入职员工)
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
今天 18:05
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务