Олимпиадный тренинг

Задача . A. Два враждующих ученика


Вы работаете тренером в школе.

Сейчас урок физкультуры, на котором \(n\) учеников стоят в ряд. И среди них есть два враждующих ученика. Первый находится на позиции \(a\), второй — на позиции \(b\). Позиции пронумерованы от \(1\) до \(n\) слева направо.

Так как они враждуют, вы хотите максимизировать расстояние между ними. Если ученики находятся на позициях \(p\) и \(s\), то расстояние между ними равно \(|p - s|\).

Вы можете выполнить следующее действие не более \(x\) раз: вы выбираете любых двух соседних по позициям учеников и меняете их местами.

Посчитайте максимальное расстояние, которое вы можете получить, поменяв местами соседних учеников не более \(x\) раз.

Входные данные

Первая строка содержит целое число \(t\) (\(1 \le t \le 100\)) — количество наборов входных данных.

Каждый набор входных данных содержит четыре числа \(n\), \(x\), \(a\) и \(b\) (\(2 \le n \le 100\), \(0 \le x \le 100\), \(1 \le a, b \le n\), \(a \neq b\)) — количество учеников в ряду, максимальное количество обменов и позиции первого и второго враждующих учеников соответственно.

Выходные данные

На каждый набор входных данных выведите одно число — максимальное расстояние между враждующими учениками, которое вы можете получить.

Примечание

В первом наборе входных данных вы можете поменять местами учеников на позициях \(3\) и \(4\). Тогда расстояние между враждующими учениками будет равно \(|4 - 2| = 2\).

Во втором наборе входных данных вам не нужно менять учеников местами.

В третьем наборе входных данных вы не можете менять учеников местами.


Примеры
Входные данныеВыходные данные
1 3
5 1 3 2
100 33 100 1
6 0 2 3
2
99
1

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя