[ABC339C] Perfect Bus
Genius_Star · · 题解
思路:
要求最小值,且公交车上不能有负数个人,考虑贪心。
我们先假设初始有
时间复杂度为
完整代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
const ll N=200200;
inline ll read(){
ll x=0,f=1;
char c=getchar();
while(c<'0'||c>'9'){
if(c=='-')
f=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
x=(x<<1)+(x<<3)+(c^48);
c=getchar();
}
return x*f;
}
inline void write(ll x){
if(x<0){
putchar('-');
x=-x;
}
if(x>9)
write(x/10);
putchar(x%10+'0');
}
ll n,sum,Min=0;
ll a[N];
int main(){
n=read();
for(int i=1;i<=n;i++){
a[i]=read();
sum+=a[i];
Min=min(Min,sum);
}
if(Min<0)
write(abs(Min)+sum);
else
write(sum);
return 0;
}