문제 : https://www.acmicpc.net/problem/2467
백준 2470 문제와 동일합니다. ( BOJ 2470 풀이 : https://travelbeeee.tistory.com/244?category=816106)
#include<iostream>
#include<vector>
#include<algorithm>
#define INF 2000000001
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int N, t;
cin >> N;
vector<int> list;
for(int i = 0; i < N; i++){
cin >> t;
list.push_back(t);
}
int ans1, ans2;
int ansSum = INF;
sort(list.begin(), list.end());
for (int i = 0; i < N; i++) {
int left = i + 1, right = N - 1;
while (left <= right) {
int mid = (left + right) / 2;
int sum = list[i] + list[mid];
if (abs(sum) < ansSum) {
ans1 = list[i], ans2 = list[mid];
ansSum = abs(sum);
}
if (sum < 0)
left = mid + 1;
else
right = mid - 1;
}
}
cout << ans1 << ' ' << ans2;
return 0;
}
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ] 14499 : 주사위 굴리기 - travelbee (0) | 2020.01.23 |
---|---|
[BOJ] 2473 : 세 용액 - travelbeeee (0) | 2020.01.22 |
[BOJ] 2470 : 두 용액 - travelbeeee (0) | 2020.01.22 |
[BOJ] 6986 : 절사평균 - travelbeeee (0) | 2020.01.22 |
[BOJ] 2028 : 자기복제수 - travelbeeee (0) | 2020.01.21 |