반응형

최대점과 최소점의 차이를 가장 작게 하기 위해서는 가장 큰값을 빼고 가장 낮은값을 더해주면 된다.

즉, 배열을 먼저 sorting한 다음 덤프하는 수만큼 연산을 하고 sorting을 반복해주면 된다.


소스코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <cstdio>
#include <algorithm>
#define MAX 100
using namespace std;
void solve() {
    int dumpCnt;
    for (int tc=1; tc<=10; tc++) {
        int map[MAX]={0,};
        scanf("%d"&dumpCnt);
        for (int i=0; i<MAX; i++scanf("%d"&map[i]);
        sort(map, map+MAX);
        for (int i=0; i<dumpCnt; i++) {
            map[0]++;
            map[MAX]--;
            sort(map, map+MAX);
        }
        
        printf("#%d %d\n", tc, map[MAX]-map[0]);
    }
}
int main() {
    solve();
    return 0;
}
cs


반응형

'Algorithm' 카테고리의 다른 글

[SWEA 5644] 무선충전  (0) 2019.08.19
[SWEA 1949] 등산로 조성  (0) 2019.08.19
[SWEA 1219] 길찾기  (0) 2019.07.24
[SWEA 2805] 농작물 수확하기  (0) 2019.07.23
[SWEA 5162] 두가지 빵의 딜레마  (0) 2019.07.23

+ Recent posts