3 条题解
-
0
#include<bits/stdc++.h> #define int long long using namespace std; const int inf=0x3f3f3f3f; const int f=1e9+7; const int N=2e5+10; int a[N],b[N]; void solve() { int n; cin >> n; int s1=0,s2=0,b1=0,b2=0; for(int i=1;i<=n;i++){ cin >> a[i]; s1=max(s1,a[i]); s2=min(s2,a[i]); } for(int i=1;i<=n;i++){ cin >> b[i]; b1=max(b1,b[i]); b2=min(b2,b[i]); } int c; cin >> c; int sum=0; int pos=0;//c是否在a[i]和b[i]之间 for(int i=1;i<=n;i++){ if((a[i]>=c && c<=b[i]) || (a[i]<=c && c>=b[i])) pos=1; //若c介于a[i]和b[i]之间,则最后加一即可 //否则,需要计算最小差值 sum+=abs(a[i]-b[i]); } s1=max(s1,b1); s2=min(s2,b2); if(pos){ cout << sum + 1 << '\n'; }else { cout << sum + 1 + min(abs(s1-c),abs(s2-c)) << '\n'; } } void close(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); } signed main () { close();int T = 1; cin >> T; while(T--) solve(); return 0; } //
信息
- ID
- 1101
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 148
- 已通过
- 39
- 上传者