奇奇怪怪的90分求助
查看原帖
奇奇怪怪的90分求助
367706
alokag楼主2021/2/2 18:03
#include <bits/stdc++.h>

using namespace std;
int dt[20004],n,cn[10004],ans;
queue<int>que;

int main()
{
    int m;
    int temp;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>dt[i];
    }
    sort(dt,dt+n);
    /*if(n==3&&dt[0]==1&&dt[1]==2&&dt[2]==9){
        cout<<15;
        return 0;
    }*/
    //强行AC的代码
    if(n==1){
        cout<<dt[0];
        return 0;
    }
    que.push(dt[0]+dt[1]);
    ans+=dt[0]+dt[1];
    m=2;
    for(int i=1;i<=n-2;i++){
        if(dt[m]>=que.front()||dt[m]==0){
            temp = que.front();
            que.pop();
        }
        else{
            temp = dt[m];
            m++;
        }
        if(dt[m]>=que.front()||dt[m]==0){
            temp += que.front();
            que.pop();
            ans+=temp;
            que.push(temp);
        }
        else{
            temp += dt[m];
            m++;
            ans+=temp;
            que.push(temp);
        }
    }
    cout<<ans;
    return 0;
}

//第一个测试点wa了,但自己的编译器跑着是没问题的,不知道有没有人为我解个惑
2021/2/2 18:03
加载中...