正式通过的第二道笔试题!加油。
import java.util.Scanner;
import java.util.Arrays; // 导入Arrays工具类
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
int n = in.nextInt();
int k = in.nextInt();
long[] s=new long[n];
long mod = (long)1e9 + 7;
for(int i=0;i<n;i++){
s[i]=in.nextLong();
}
Arrays.sort(s);
int q=0;
long sum=0;
while(q<k&&n-q-2>=0){
s[n-1-q-1]=(s[n-1-q-1]*s[n-1-q])%mod;
s[n-1-q]=1;
sum=(s[n-1-q-1]+1+q)%mod;
// System.out.println(sum);
q++;
}
for(int j=n-2-k;j>=0;j--){
sum=(sum+s[j])%mod;
}
System.out.print(sum);
}
}
小美的游戏
小美有一个长度为 n 的数组,她最多可以进行 k 次操作,每次操作如下:
她希望最多进行 k 次操作之后,最后数组中的元素的总和尽可能大。
