https://www.acmicpc.net/problem/2470
주어진 용액들 중 두 개의 용액을 혼합했을 때, 혼합 용액의 특성값이 0에 가장 가까운 경우를 찾고, 해당 두 용액의 특성값을 출력하는 프로그램을 작성.
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{
int n;
cin >> n;
vector<long long> solutions(n);
for (int i = 0; i < n; i++)
{
cin >> solutions[i];
}
sort(solutions.begin(), solutions.end());// {-99, -2, -1, 4, 98}
int left = 0, right = n - 1;
long long closest_sum = LLONG_MAX;//오버플로우 방지
long long result01 = 0, result02 = 0;
while (left < right)
{
long long sum = solutions[left] + solutions[right];
if (abs(sum) < abs(closest_sum))
{
closest_sum = sum;
result01 = solutions[left];
result02 = solutions[right];
}
if (sum < 0)
{
left++;
}
else right--;
}
cout << result01 << " " << result02 << endl;
return 0;
}
백준 1697//숨바꼭질 (0) | 2025.01.21 |
---|---|
백준 1260번 //DFS와 BFS// (0) | 2025.01.20 |
백준 //선분 위의 점//11663//정렬(Sorting)**과 **이분 탐색(Binary Search) (0) | 2025.01.19 |
항해99 백준 2343번 // 블루레이 강의 (0) | 2025.01.17 |
항해 99// 백준 랜선 자르기//이진탐색//c++ (1) | 2025.01.15 |