Offer收割 程式設計練習賽50 A 迴圈陣列

2021-08-16 18:05:31 字數 1194 閱讀 3073

時間限制:

10000ms

單點時限:

1000ms

記憶體限制:

256mb

給定包含n個整數的陣列a1, a2, ... an,你可以選擇任意乙個ai,將ai旋轉到陣列第一項,即將陣列變成:

ai, ai+1, ai+2, ... an, a1, a2, ..., ai-1

現在小hi希望旋轉之後的陣列滿足:

對於任意k(1 ≤ i ≤ n),前k項的和都是正數。  

例如對於a=[3, -5, 2, -2, 3, 0],旋轉成[3, 0, 3, -5, 2, -2]滿足條件。  

請你輸出i,代表將ai旋轉到第一項滿足條件。  

如果有多解,你可以輸出任意乙個i。如果無解輸出-1。

第一行包含乙個整數n。  

第二行包含n個整數a1, a2, ... an。  

對於50%的資料,1 ≤ n ≤ 1000  

對於100%的資料,1 ≤ n ≤ 100000, -1000000 ≤ ai ≤ 1000000

乙個整數表示答案。

樣例輸入

6  

3 -5 2 -2 3 0

樣例輸出

5

#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

const int maxn = 1e5+1000;

const int inf = 0x3f3f3f3f;

const long long inf = (long long)(inf*inf);

long long a[maxn];

vectormark;

long long pre_sum[maxn],hou_sum[maxn];

void init()

int main(void)

if(sum<=0)

else

int len = mark.size();

int ans;

long long max=-inf;

for(int i=0; i0)}}

printf("%d\n",ans);

}return 0;

}

Offer收割 程式設計練習賽50 迴圈陣列

描述 給定包含n個整數的陣列a1,a2,an,你可以選擇任意乙個ai,將ai旋轉到陣列第一項,即將陣列變成 ai,ai 1,ai 2,an,a1,a2,ai 1 現在小hi希望旋轉之後的陣列滿足 對於任意k 1 i n 前k項的和都是正數。例如對於a 3,5,2,2,3,0 旋轉成 3,0,3,5,...

Offer收割 程式設計練習賽1

做了三題,題目都比較暴力。a題 題意 給你乙個三階的幻方,三階幻方指的是將1 9不重複的填入乙個3 3的矩陣當中,使得每一行 每一列和每一條對角線的和都是相同的。現在準備將乙個三階幻方中的一些陣列抹掉 0代替 交給你來進行還原,並且希望她能夠判斷出究竟是不是只有一組解。如果只有一組解,輸出該三階幻方...

Offer收割 程式設計練習賽7

比較容易想到是o n 2 的解決方案,遍歷n種刪除可能,每次遍歷o n 時間求總高度。前者優化比較困難,因而想辦法優化每次遍歷求高度的時間。由前往後遍歷,當刪除第i個時,先前的排版是連續的,從而通過計數器等累加方法可以求得已完整行的總高度presum,以及當前未完整行的w,h。include def...