正式通过的第二道笔试题!加油。

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 次操作之后,最后数组中的元素的总和尽可能大。

全部评论

相关推荐

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