時間限制:
1000 ms | 記憶體限制:
65535 kb
難度:3 描述
下雨了,下雨了,螞蟻搬家了。
已知有n種食材需要搬走,這些食材從1到n依次排成了乙個圈。小螞蟻對每種食材都有乙個喜愛程度值vi,當然,如果vi小於0的時候,表示螞蟻討厭這種食材。因為馬上就要下雨了,所以螞蟻只能搬一次,但是能夠搬走連續一段的食材。時間緊急,你快幫幫小螞蟻吧,讓它搬走的食材喜愛值和最大。
輸入
有多組測試資料(以eof結尾)。
每組資料有兩行,第一行有乙個n,表示有n種食材排成了乙個圈。(2 <= n<= 50000)
第二行分別有n個數,代表螞蟻對第n種食材的喜愛值vi。(-10^9 <= vi <= 10^9)
輸出輸出小螞蟻能夠搬走的食材的喜愛值總和的最大。
樣例輸入
33 -1 2
5-8 5 -1 3 -9
樣例輸出
5這題是最大欄位和的變形,關鍵的地方是資料可以迴圈,分兩步解決:7
第一步,求出這組資料的首尾不迴圈的最大欄位和s1
第二步,這個可以在第一步的時候,求出他的最小字段和s2,還有全部資料之和s,那麼,根據題目的要求,將s1與s-s2的值比較就可以得到最後的結果。
#include long long a[50010];
#define max(x,y) (x) > (y) ? (x) : (y)
#define min(x,y) (x) < (y) ? (x) : (y)
int main(int argc, char const *argv)
long long s1 = a[0],s2 = a[0],v1 = 0,v2 = 0,s = 0;
for(int i = 0; i < n; i++)
printf("%lld\n", max(s1,s-s2));
} return 0;
}
nyoj 螞蟻的難題(二)745
描述 下雨了,下雨了,螞蟻搬家了。已知有n種食材需要搬走,這些食材從1到n依次排成了乙個圈。小螞蟻對每種食材都有乙個喜愛程度值vi,當然,如果vi小於0的時候,表示螞蟻討厭這種食材。因為馬上就要下雨了,所以螞蟻只能搬一次,但是能夠搬走連續一段的食材。時間緊急,你快幫幫小螞蟻吧,讓它搬走的食材喜愛值和...
nyoj 745 螞蟻的難題(二)
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 下雨了,下雨了,螞蟻搬家了。已知有n種食材需要搬走,這些食材從1到n依次排成了乙個圈。小螞蟻對每種食材都有乙個喜愛程度值vi,當然,如果vi小於0的時候,表示螞蟻討厭這種食材。因為馬上就要下雨了,所以螞蟻只能搬一次,但是能夠搬走...
NYOJ 745 螞蟻的難題(二)
時間限制 1000 ms 記憶體限制 65535 kb描述 下雨了,下雨了,螞蟻搬家了。已知有n種食材需要搬走,這些食材從1到n依次排成了乙個圈。小螞蟻對每種食材都有乙個喜愛程度值vi,當然,如果vi小於0的時候,表示螞蟻討厭這種食材。因為馬上就要下雨了,所以螞蟻只能搬一次,但是能夠搬走連續一段的食...