3 条题解

  • 5
    @ 2024-12-19 19:25:02
    #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
      @ 2024-12-19 20:16:18
      #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
        @ 2024-12-16 21:15:33
        #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
        上传者