[백준 2467번] 용액

2017. 7. 23. 21:47알고리즘/백준

반응형





소스코드


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
#include <iostream>
using namespace std;
 
int n;
long long num[100001], Min = 9876543210, result_a, result_b;
 
int main() {
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> num[i];
    }
    for (int i = 0; i < n; i++) {
        int l=0,r=n,idx;
        while (r - l >= 1) {
            int mid = (l + r) / 2;
            if (num[mid] == (-1 * num[i])) {
                idx = mid;
                break;
            }
            else if (num[mid] < (-1 * num[i])) {
                l = mid + 1;
            }
            else if (num[mid] > (-1 * num[i])) {
                r = mid;
            }
            idx = mid;
        }
        if (i == idx) continue;
        long long tmp_num = num[i] + num[idx];
        if (tmp_num < 0)
            tmp_num = -1 * tmp_num;
        if (Min > tmp_num) {
            Min = tmp_num;
            if (num[i] > num[idx]) {
                result_a = num[idx];
                result_b = num[i];
            }
            else {
                result_a = num[i];
                result_b = num[idx];
            }
        }
    }
    cout << result_a << " " << result_b << '\n';
    return 0;
}
cs


반응형

'알고리즘 > 백준' 카테고리의 다른 글

[백준 1107번] 리모컨  (2) 2017.07.23
[백준 5397번] 키로거  (0) 2017.07.23
[백준 10971번] 외판원 순회 2  (0) 2017.07.23
[백준 10844번] 쉬운 계단 수  (0) 2017.07.13
[백준 1261번] 알고스팟  (0) 2017.07.13