比赛 20160412 评测结果 TTTTTATTTATTTTTTTTTT
题目名称 非负的部分和 最终得分 10
用户昵称 asddddd 运行时间 18.023 s
代码语言 C++ 内存使用 0.27 MiB
提交时间 2016-04-12 11:18:56
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
struct node{
    int v;
    node *prev,*next;
    node():prev(NULL),next(NULL){
        
    };
};
node * newnode(){
    return new node();
};
void init(){
    int n,fu=0;
    cin>>n;
    node *shou=newnode();
    cin>>shou->v;
    if (shou->v<0) {
        fu++;
    }
    node *cur=shou;
    for (int i=1; i<n; i++) {
        node *ne=newnode();
        int k;
        cin>>k;
        if (k<0) {
            fu++;
        }
        ne->v=k;
        cur->next=ne;
        ne->prev=cur;
        if (i==n-1) {
            shou->prev=ne;
            ne->next=shou;
        }
    }
    int tot=n;
    cur=shou;
    while (tot>1&&fu) {
        if (cur->v<0) {
            cur->prev->v+=cur->v;
            fu--;
            if (cur->prev<0) {
                fu--;
            }
            cur->prev->next=cur->next;
            cur->next->prev=cur->prev;
            tot--;
        }
        cur=cur->prev;
    }
    cout<<tot;
}
int main(){
    freopen("sumc.in", "r", stdin);
    freopen("sumc.out", "w", stdout);
    init();
}