BAEKJOON/C++

[B2467][용액][C++]

sseni 2023. 1. 26. 17:15
728x90

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


두 용액 : 산성, 알칼리성
1. 용액마다 용액의 특성을 나타내는 하나의 정수가 주어짐
2. 산성 : 1 ~ 1,000,000,000 까지의 양의 정수
3. 알칼리성 : -1 ~ -1,000,000,000 까지의 음의 정수
4. 같은 양의 두 용액을 혼합한 용액의 특성 값은 각 용액의 특성값의 합으로 정의
5. 같은 양의 두 용액을 혼합하여 특성값이 0에 가까운 용액을 만들려고 함
6. 같은 종류의 알칼리 혹은 산으로 만들수도 있음
 
ex. [-99, -2, -1, 4, 98] 일 때,
-99와 98 = -1 -> 0에 가장 가까움
 
-99 –2 –1 4 98
 
-99 98 = -1
-2 98 > –99 4
#include <iostream>
using namespace std;

int n;
long long int arr[100001];
long long int x, y;

int main() {
	cin >> n;
	for (int i = 0; i < n; i++) 
		cin >> arr[i];

	int start = 0, end = n-1;
	x = arr[start], y = arr[end];
	int mix = abs(x + y);

	while (start < end) {
		if (mix > abs(arr[start] + arr[end])) {
			mix = abs(arr[start] + arr[end]);
			x = arr[start];
			y = arr[end];
		}
			
		if (abs(arr[start + 1] + arr[end]) > abs(arr[start] + arr[end - 1]))
			end--;
		else start++;
	}

	cout << x << " " << y;
}

 

728x90