5 条题解

  • 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;
    }
    
    • 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
            标签
            递交数
            380
            已通过
            177
            上传者