#include <stdio.h>

int natural_num_sum(int n)
{
	return (n + 1) * n / 2;
}

int sum_lower_equal(const int *arr, int arr_size, int lower_equal)
{
	int sum = 0;
	
	for (int i = 0; i < arr_size; i++) {
		if (arr[i] <= lower_equal) {
			sum += arr[i];
		}
	}
	
	return sum;
}

int sum(const int *arr, int arr_size) {
	int sum = 0;
	
	for (int i = 0; i < arr_size; i++) {
		sum += arr[i];
	}
	
	return sum;
}

void solve_2(const int *arr, int arr_size)
{
	int n = arr_size + 2;
	int sum_x_y = natural_num_sum(n) - sum(arr, arr_size);
	int x_is_lower_equal = sum_x_y / 2;
	int x = natural_num_sum(x_is_lower_equal) - sum_lower_equal(arr, arr_size, x_is_lower_equal);
	int y = sum_x_y - x;
	
	printf("x = %d, y = %d\n", x, y);
}

int main(void) {
	const int test[] = {1, 4, 3, 2};
	solve_2(test, sizeof(test)/sizeof(test[0]));
	return 0;
}
