문제
2470번: 두 용액
첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00
www.acmicpc.net
코드
#include<bits/stdc++.h>
using namespace std;
int n, arr[100000], ans[2], minValue = INT_MAX;
void sol()
{
int left = 0, right = n - 1;
while (left < right)
{
int tempSum = arr[left] + arr[right];
if (minValue > abs(tempSum))
{
minValue = abs(tempSum);
ans[0] = left;
ans[1] = right;
}
if (tempSum > 0)
right--;
else
left++;
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
sort(arr, arr + n);
sol();
cout << arr[ans[0]] << " " << arr[ans[1]] << "\n";
return 0;
}
'개발 > 알고리즘' 카테고리의 다른 글
백준 1344 축구 C++ (0) | 2021.04.16 |
---|---|
백준 4781번 사탕가게 C++ (0) | 2021.04.16 |
백준 4811번 알약 C++ (0) | 2021.04.13 |
백준 15651 N과M(3) - 중복 순열 C++ (0) | 2021.04.11 |
백준 15650 N과M(2) - 조합 C++ (0) | 2021.04.11 |