aboutsummaryrefslogtreecommitdiff
path: root/02_sorting_and_searching/sum_of_two_values_1640.cpp
blob: 75b0f542689490ea1904e3469f6f18c5ba7639bb (plain)
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
#include <algorithm>
#include <iostream>
#include <vector>

int main() {
	int n, x;
	std::cin >> n >> x;
	std::vector<std::pair<int, int>> a(n);
	for (int i = 0; i < n; i++) {
		std::cin >> a[i].first;
		a[i].second = i;
	}
	std::sort(a.begin(), a.end());

	int i{0}, j{n-1};
	while (i < j) {
		auto [ai, ii] = a[i];
		auto [aj, ij] = a[j];
		if (ai + aj < x) i++;
		else if (ai + aj > x) j--;
		else {
			std::cout << ii+1 << " " << ij+1 << "\n";
			return 0;
		}
	}
	std::cout << "IMPOSSIBLE\n";
}

Generated with cgit - Back to sebastiano.tronto.net