CF1526C1求助 <版块漂移>
  • 板块灌水区
  • 楼主Huchangzhi
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/6/1 15:06
  • 上次更新2024/6/1 17:09:43
查看原帖
CF1526C1求助 <版块漂移>
1031975
Huchangzhi楼主2024/6/1 15:06
#include <iostream>
#include <algorithm>
#define pi pair <long long, long long>
using namespace std;
long long h = 0, sz[2010], js=0;
pi sz2[2010];
bool cmp(pi x, pi y){
    if(x.first >= 0) return 0;
    if(y.first >= 0) return 1;
    return x.first > y.first;
}
int main(){
    long long n;
    cin >> n;
    for(long long i=1;i<=n;i++){
        cin >> sz[i];
        sz2[i].first = sz[i];
        sz2[i].second = i;
        if(sz[i] >= 0) h+= sz[i], js++;
    }
    sort(sz2+1, sz2+1+n, cmp);
    long long ls = js;
    long long sz3[2010]={};
    for(long long i = 1;i<(n - ls);i++){
        if((h + sz2[i].first) >= 0){
            long long zh = 0;
            for(int j=1;j<=sz2[i].second;j++){
                if(sz[j] >= 0) zh+=sz[j];
            }
            if((sz2[i].first + zh + sz3[sz2[i].second]) >= 0){
                for(int i=1;i<=sz2[i].second;i++){
                    sz3[i] += sz2[i].first;
                }
                js++;
                h += sz2[i].first;
            }
        }
    }
    printf("%lld", js);
    return 0;
}
2024/6/1 15:06
加载中...