Educational Codeforces Round 76 (Rated for Div. 2) A. Two Rival Students

烈酒焚心 提交于 2019-12-04 12:29:12

You are the gym teacher in the school.

There are nn students in the row. And there are two rivalling students among them. The first one is in position aa, the second in position bb. Positions are numbered from 11 to nn from left to right.

Since they are rivals, you want to maximize the distance between them. If students are in positions pp and ss respectively, then distance between them is |ps||p−s|.

You can do the following operation at most xx times: choose two adjacent (neighbouring) students and swap them.

Calculate the maximum distance between two rivalling students after at most xx swaps.

Input

The first line contains one integer tt (1t1001≤t≤100) — the number of test cases.

The only line of each test case contains four integers nn, xx, aa and bb (2n1002≤n≤100, 0x1000≤x≤100, 1a,bn1≤a,b≤n, aba≠b) — the number of students in the row, the number of swaps which you can do, and positions of first and second rivaling students respectively.

Output

For each test case print one integer — the maximum distance between two rivaling students which you can obtain.

Example
input
Copy
3
5 1 3 2
100 33 100 1
6 0 2 3
output
Copy
2
99
1
Note

In the first test case you can swap students in positions 33 and 44. And then the distance between the rivals is equal to |42|=2|4−2|=2.

In the second test case you don't have to swap students.

In the third test case you can't swap students.

 

 

#include<bits/stdc++.h>
using namespace std ;
int n,x,a,b;
int main() {
    int t;
    cin>>t;
    while(t--) {
        cin>>n>>x>>a>>b;
        if((abs(a-b)+x)>(n-1)) cout<<n-1<<endl;
        else cout<<(abs(a-b)+x)<<endl;
    }
    return 0;
}

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!