有編號1-n的n個格仔,機械人從1號格仔順序向後走,一直走到n號格仔,並需要從n號格仔走出去。機械人有乙個初始能量,每個格仔對應乙個整數a[i],表示這個格仔的能量值。如果a[i] > 0,機械人走到這個格仔能夠獲取a[i]個能量,如果a[i] < 0,走到這個格仔需要消耗相應的能量,如果機械人的能量 < 0,就無法繼續前進了。問機械人最少需要有多少初始能量,才能完成整個旅程。
例如:n = 5。 最少需要2個初始能量,才能從1號走到5號格仔。途中的能量變化如下3 1 0 3 7。
input
第1行:1個數n,表示格仔的數量。(1 <= n <= 50000) 第2 - n + 1行:每行1個數a[i],表示格仔裡的能量值(-1000000000 <= a[i] <= 1000000000)output
輸出1個數,對應從1走到n最少需要多少初始能量。input示例
5 1 -2 -1 3 4output示例
說一下思路:這裡我們只考慮每一步,把當前位之前的正數都記錄下來,如果當前位是正數,繼續累加(因為如果都是正數不需要初始能量),如果當前位是負數,就從正數總和中加上這個負數,如果加上後小於0,這時候就代表你需要初始能量了。用num來儲存初始能量。下面貼上**
#includeusing namespace std;
long long num,n,a[50005],t,zheng; //zheng來儲存正數
int main()
{ ios::sync_with_stdio(false);
cin>>n;
for(int i=0;i>a[i];
for(int i=0;i0) zheng=zheng+a[i];
else if(a[i]<0)
{if(zheng
51nod 1344 走格仔(貪心)
1344 走格仔 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 有編號1 n的n個格仔,機械人從1號格仔順序向後走,一直走到n號格仔,並需要從n號格仔走出去。機械人有乙個初始能量,每個格仔對應乙個整數a i 表示這個格仔的能量值。如果a i 0,機械人走到這個格仔...
51nod 1344 走格仔 貪心 字首和
1344 走格仔 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 收藏關注有編號1 n的n個格仔,機械人從1號格仔順序向後走,一直走到n號格仔,並需要從n號格仔走出去。機械人有乙個初始能量,每個格仔對應乙個整數a i 表示這個格仔的能量值。如果a i 0,機械人走到...
51nod 1486 大大走格仔
1486 大大走格仔 codeforces 基準時間限制 1 秒 空間限制 131072 kb 分值 160 難度 6級演算法題 有乙個h行w列的棋盤,裡面有一些格仔是不能走的,現在要求從左上角走到右下角的方案數。input 單組測試資料。第一行有三個整數h,w,n 1 h,w 10 5,1 n 2...