6 条题解

  • 4
    @ 2021-12-5 19:35:57
    #include<algorithm>
    #include<cmath>
    #include<cstdio>
    #include<cstring>
    #include<fstream>
    #include<iomanip>
    #include<iostream>
    #include<string>
    using namespace std;
    typedef long long LL;
    const int INF=0x3f3f3f3f;
    const int N=1e5+10;
    const int eps=1e-5;
    LL n,a[100010],ans;
    int main()
    {
        cin>>n;
        for(int i=1;i<=n;i++)
            cin>>a[i];
        sort(a+1,a+1+n);
        for(int i=1;i<=n;i++)
            ans+=abs(a[i]-a[n/2+1]);
        cout<<ans;
        return 0;
    }
    
    • 1
      @ 2026-5-16 11:17:30
      #include<bits/stdc++.h>
      using namespace std;
      int main(){
          int n,a[100005];
          cin>>n;
          for(int i=1;i<=n;i++){
              cin>>a[i];
          }
          sort(a+1,a+n+1);
          int r,l=0;
          r=a[n/2];
          for(int i=1;i<=n;i++){
              l+=abs(r-a[i]);
          }
          cout<<l;
      }
      

      ******包不AC

      最优解
      • 0
        @ 2025-8-12 15:23:30
        #include <iostream>
        #include <vector>
        #include <algorithm>
        
        using namespace std;
        
        int main() {
            int n;
            // 读取商店数量
            cin >> n;
            
            // 存储商店坐标
            vector<int> positions(n);
            for (int i = 0; i < n; ++i) {
                cin >> positions[i];
            }
            
            // 排序以找到中位数
            sort(positions.begin(), positions.end());
            
            // 找到中位数位置
            int median = positions[n / 2];
            
            // 计算距离之和(使用传统for循环替代范围for循环)
            int total_distance = 0;
            for (int i = 0; i < positions.size(); ++i) {
                total_distance += abs(positions[i] - median);
            }
            
            // 输出结果
            cout << total_distance << endl;
            
            return 0;
        }
        
        • 0
          @ 2024-12-17 16:12:58
          #include<bits/stdc++.h>
          using namespace std;
          typedef long long LL;
          const int INF=0x3f3f3f3f;
          const int N=1e5+10;
          const int eps=1e-5;
          LL n,a[100010],ans;
          int main()
          {
              cin>>n;
              for(int i=1;i<=n;i++)
                  cin>>a[i];
              sort(a+1,a+1+n);
              for(int i=1;i<=n;i++)
                  ans+=abs(a[i]-a[n/2+1]);
              cout<<ans;
              return 0;
          }
          
          
          • 0
            @ 2024-11-21 22:55:55

            拿下纪录短代码

            普通做法

            //短代码
            #include<bits/stdc++.h>
            using namespace std;
            int main(){
            	int a[100005],n,ans=0;cin>>n;
            	for(int i=1;i<=n;i++)cin>>a[i];       sort(a+1,a+n+1);
            	for(int i=1;i<=n;i++)ans+=abs(a[i]-a[n/2+1]);
            	cout<<ans;
            }
            
            • 0
              @ 2023-12-2 17:15:36

              兄弟们我一雪前耻了!!!

              就是这道题害我中级班期末考试少了80分,今日直接拿下~

              #include <bits/stdc++.h>
              using namespace std;
              const int N=1e5+10;
              const int INF=0x3f3f3f3f;
              int n,a[N],ans; 
              int main()
              {
              	cin>>n;
              	for(int i=1;i<=n;i++)
              	{
              		cin>>a[i];
              	}
              	sort(a+1,a+n+1);
              	for(int i=1;i<=n;i++)
              	{
              		ans+=abs(a[i]-a[n/2]);
              	}
              	cout<<ans;
              	return 0;
              }
              

              tips:货仓选择在中间店铺最省力

              • 1

              信息

              ID
              16
              时间
              1000ms
              内存
              128MiB
              难度
              4
              标签
              递交数
              517
              已通过
              235
              上传者