반응형
최대점과 최소점의 차이를 가장 작게 하기 위해서는 가장 큰값을 빼고 가장 낮은값을 더해주면 된다.
즉, 배열을 먼저 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 |