https://algospot.com/judge/problem/read/MAGICPOWER
여기 문제 인데
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int T;
int *N;
int *M;
int**A;
scanf("%d", &T);
A = new int*[T];
N = new int[T];
M = new int[T];
for (int i = 0; i < T; i++)
{
scanf("%d", &N[i]);
scanf("%d", &M[i]);
A[i] = new int[N[i]];
for (int j = 0; j < N[i]; j++)
scanf("%d", &A[i][j]);
}
for (int i = 0; i < T; i++)
{
sort(A[i], A[i] + N[i]);
}
for (int i = 0; i < T; i++)
{
int temp = 0;
for (int j = 0; j < M[i]; j++)
{
temp += A[i][N[i]-1];
if (A[i][N[i] - 1] != 0)
A[i][N[i] - 1]--;
if (A[i][N[i]-1] < A[i][N[i] - 2])
{
int temp2;
temp2 = A[i][N[i]-1];
A[i][N[i]-1] = A[i][N[i] - 2];
A[i][N[i] - 2] = temp2;
}
}
printf("%d\n", temp);
}
for (int i = 0; i < T; i++)
delete[] A[i];
delete[] A;
delete[] N;
delete[] M;
return 0;
}
그냥 니 알고리즘이 틀렸다는거
ㄴ 아니 그러니까 어떤식으로 해야 하는지라도 알려줘