3 条题解
-
5
#include<bits/stdc++.h> using namespace std; #define int long long const int N=1e6+10,M=1e9+10; int a[N],b[N]; signed main() { int t; cin>>t; while(t--) { int n,ans=0,xx=M,c; cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=n;i++)cin>>b[i]; cin>>c; for(int i=1;i<=n;i++) { ans=ans+abs(a[i]-b[i]); if((c-a[i])*(c-b[i])<=0)xx=min(xx,(int)1); else xx=min(xx,1+abs(c-a[i])); } ans=ans+xx; cout<<ans<<'\n'; } }
-
0
#include<bits/stdc++.h> using namespace std; #define int long long const int N=2e5+10; int t,n,x,sum,o,a[N],l,r; signed main() { ios::sync_with_stdio(false); cin.tie(0);cout.tie(0); cin>>t; while(t--) { sum=0,o=l=1e9,r=0; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } for(int i=1;i<=n;i++) { cin>>x; sum+=abs(a[i]-x); l=min(l,min(x,a[i])); r=max(r,max(x,a[i])); } cin>>x; for(int i=1;i<=n;i++) { o=min(o,abs(x-a[i])); } sum++; if(x<l||x>r)sum+=o; cout<<sum<<endl; } }
-
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; } //
- 1
信息
- ID
- 1101
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 148
- 已通过
- 39
- 上传者