求神犇帮看看
  • 板块灌水区
  • 楼主zldy
  • 当前回复15
  • 已保存回复15
  • 发布时间2022/11/13 15:34
  • 上次更新2023/10/27 03:06:14
查看原帖
求神犇帮看看
601674
zldy楼主2022/11/13 15:34

cf1740c

要使|x-y|+|y-z|和最小值最大,按照样例的意思,本蒟蒻的思路为 将序列a排序,然后使最大值与最小值分别放入相邻的背包中,再比较次小值与最小值的差(min')和次大值和最大值的差(max')中的较大值 思路是否有问题? 或者代码写的有问题? 样例能过

#include<bits/stdc++.h>
using namespace std;
int a[200002];
int main(){
    int t;
    cin>>t;
    while(t--){
        int n;
        cin>>n;
        for(int i=1;i<=n;i++) cin>>a[i];
        sort(a+1,a+1+n);
        int ans=0;
        ans+=a[n]-a[1];
        ans+=max(a[2]-a[1],a[n]-a[n-1]);
        cout<<ans<<"\n";
    }
    return 0;
}
2022/11/13 15:34
加载中...