1 条题解

  • 0
    @ 2024-11-23 21:38:51

    由于我们输入的这个序列是无序的,而我们要把这些数字两两统一,于是我们就要先排序,这样才能使操作次数最少 我们接下来只需要累加两两相差的值,每次累加到 a[i+1]-a[i] 于是我们就能得到一下代码:

    for(int i=1;i<=n;i+=2)c+=a[i+1]-a[i];
    

    最终输出c即可

    #include<bits/stdc++.h>
    using namespace std;
    const int N=100001;
    int a[N];
    int main()
    {
        int n;
        cin>>n;
        for(int i=1;i<=n;i++)cin>>a[i];
        sort(a+1,a+1+n);
        int c=0;
        for(int i=1;i<=n;i+=2)c+=a[i+1]-a[i];
        cout<<c;
    }
    
    • 1

    信息

    ID
    147
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    25
    已通过
    21
    上传者