记录编号 |
249258 |
评测结果 |
WWTWWAWWWAWWTWWWWATT |
题目名称 |
非负的部分和 |
最终得分 |
15 |
用户昵称 |
asddddd |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
5.277 s |
提交时间 |
2016-04-12 14:40:27 |
内存使用 |
0.31 MiB |
显示代码纯文本
#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;
}
cur=ne;
}
int tot=n;
cur=shou;
while (tot>1&&fu) {
if (cur->v<0) {
if (cur->prev->v<0) {
fu++;
}
cur->prev->v+=cur->v;
fu--;
if (cur->prev->v<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();
}