每次都是选取最大的那i*j个数字
所以用前缀和维护 累加即可
import java.math.*;
import java.util.*;
public class Main {
public static int a[];
public static long sum[];
public static void main(String args[])
{
Scanner input = new Scanner(System.in);
int n = input.nextInt();
a = new int[n+1];
sum = new long[n+1];
for(int i=1;i<=n;i++)
{
a[i] = input.nextInt();
}
long ans=0;
Arrays.sort(a);
for(int i=1;i<=n;i++)
{
sum[i] = sum[i-1]+a[n-i+1];
}
int x = input.nextInt();
int y = input.nextInt();
for(int i=1;i<=x;i++)
{
for(int k=1;k<=y;k++)
{
ans+=sum[i*k];
}
}
System.out.println(ans);
}
} 
京公网安备 11010502036488号