본문 바로가기

백준

2309)일곱난쟁이

https://www.acmicpc.net/problem/2309


9명의 난쟁이 중 7명이 진짜이고 진짜 난쟁이의 키 합이 100이다.


일단 싹 다 더하고 임의로 난쟁이 2명의 키를 빼줘서 100이 되는 경우를 찾으면 된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include<stdio.h>
typedef enum _BOOL {
    FALSE = 0, TRUE =1
} BOOL;
 
void swap(int *A, int *B) {
    int temp;
 
    temp = *A;
    *= *B;
    *= temp;
}
 
int partition(int *A, int p, int r) {
    int i = p - 1;
 
    for (int j = p; j < r; j++) {
        if (A[j] < A[r]) {
            swap(&A[++i], &A[j]);
        }
 
    }
    swap(&A[i + 1], &A[r]);
 
    return i + 1;
}
 
void quickSort(int *A, int p, int r) {
    int q;
 
    if (p < r) {
        q = partition(A, p, r);
        quickSort(A, p, q - 1);
        quickSort(A, q + 1, r);
    }
}
 
int main() {
    int height[9];
    int sum = 0;
    int not1, not2;
    int isFound = FALSE;
 
    for (int i = 0; i < 9;i++) {
        scanf("%d",&height[i]);
        sum += height[i];
    }
 
    quickSort(height, 08);
 
    for (int i = 0; i < 9;i++) {
        for (int j = 0; j < 9;j++) {
            if (i != j && sum-(height[i]+height[j]) == 100) {
                not1 = i, not2 = j;
                isFound = TRUE;
                break;
            }
        }
        if (isFound) break;
    }
 
    for (int i = 0; i < 9;i++) {
        if(i != not1 && i != not2) printf("%d\n", height[i]);
    }
    
    system("pause");
    return 0;
}
cs


'백준' 카테고리의 다른 글

2606)바이러스  (0) 2019.02.12
2605)줄 세우기  (0) 2019.02.11
2217)로프  (0) 2019.02.11
2290)LCD Test  (0) 2019.02.10
9324)진짜 메세지  (0) 2019.02.09