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

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.

扫描二维码关注公众号,回复: 7859877 查看本文章
#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;
}

猜你喜欢

转载自www.cnblogs.com/QingyuYYYYY/p/11863739.html