题意:
某个人打开了n个网页,现在鼠标光标在pos位置,要求以最少的时间关闭(l,r)以外的窗口,若在l上,则可以关闭l以左的所有窗口,在r可关闭r到右边的所有窗口。
思路:
模拟各种情况。
代码:
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<cmath>
#define ll long long
#define inf 0x7f7f7f7f
using namespace std;
int main() {
int p,l,r,n;
int ans;
while(cin>>n>>p>>l>>r){
ans=0;
if(l==1&&r==n) ans=0;
else if(l==1&&p>=r) ans+=p-r+1;
else if(l==1&&p<r) ans+=r-p+1;
else if(r==n&&p<=l)ans+=l-p+1;
else if(r==n&&p>l) ans+=p-l+1;
else ans+=min(abs(l-p)+r-l,abs(p-r)+r-l)+2;
cout<<ans<<endl;
}
return 0;
}