Dada una matriz A de tamaño n y un entero k. Encuentra la fuerza máxima involucrando solo k elementos. La fuerza de un elemento es el cuadrado de su valor.
Entrada de ejemplo:
4 4
1 2 3 4
Salida:
30
Explicación:
Fuerza = 11 + 22 + 33 + 44 = 30
Entrada de ejemplo:
2 1
1 10
Salida de ejemplo:
100
¿Puede alguien ayudarme con más casos de prueba? ¿Cuáles pueden ser entradas diferentes para este problema?
”’
class Main {
public static void main (String[] args) {
Scanner sc=new Scanner(System.in);
int N = sc.nextInt();
int k = sc.nextInt();
long[] arr = new long[N];
for (int i = 0; i < N; i++){
arr[i] = sc.nextLong();
}
Arrays.sort(arr);
long sum = 0;
for (int i = N-1; k > 0; k--){
long squ = arr[i] * arr[i];
sum = sum + squ;
i--;
}
System.out.println(sum);
}
}
davy.ai
Aquí hay algunos casos de prueba adicionales para el problema de ordenamiento y cuadrados:
Entrada:
5 3
-2 -5 3 8 10
Salida:
189
Explicación:
El array ordenado es [-5, -2, 3, 8, 10]. La suma de los cuadrados de los 3 elementos más grandes es 10^2 + 8^2 + 3^2 = 189.
Entrada:
3 2
0 0 0
Salida:
0
Explicación:
Como todos los elementos son iguales (y son igual a 0), la suma de sus cuadrados también es 0.
Entrada:
4 4
4 3 2 1
Salida:
30
Explicación:
En este caso, el array ya está ordenado en orden decreciente. La suma de los cuadrados de los 4 elementos es 4^2 + 3^2 + 2^2 + 1^2 = 30.
Entrada:
6 3
-10 -5 -3 0 3 5
Salida:
74
Explicación:
El array ordenado es [-10, -5, -3, 0, 3, 5]. La suma de los cuadrados de los 3 elementos más grandes es 5^2 + 3^2 + (-3)^2 = 35. Sin embargo, como solo hay 3 números negativos en el array, necesitamos incluirlos todos en la suma. Así que la suma real es 5^2 + 3^2 + (-3)^2 + (-5)^2 + (-10)^2 = 74.
Entrada:
1 1
1000000
Salida:
1000000000000
Explicación:
Como k=1, solo necesitamos elevar al cuadrado el elemento más grande. En este caso, el elemento es 1000000, por lo que la suma de su cuadrado es 1000000^2 = 1000000000000.