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

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

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务