CSES 3301 - Maximum Average Subarrays
1.0s 512M給定一個含 \(n\) 個整數的陣列。對每個 \(i = 1, 2,\dots, n\),你的任務是找出以位置 \(i\) 結尾、平均值最大的子陣列。如果有多個子陣列的平均值都是最大,你要找出其中最長的那一個。
輸入格式
第一行有一個整數 \(n\):陣列的大小。
第二行有 \(n\) 個整數 \(x_1, x_2,\dots, x_n\):陣列的內容。
輸出格式
輸出 \(n\) 個整數:對每個 \(i = 1, 2,\dots, n\),以位置 \(i\) 結尾、平均值最大的子陣列的長度。
範例輸入 1
7
1 6 4 6 2 5 5
範例輸出 1
1 1 2 1 4 1 2
說明:以 \(i = 5\) 為例。所有以位置 \(5\) 結尾的子陣列的平均值分別是 \(\frac{1 + 6 + 4 + 6 + 2}{5} = 3.8\)、\(\frac{6 + 4 + 6 + 2}{4} = 4.5\)、\(\frac{4 + 6 + 2}{3} = 4\)、\(\frac{6 + 2}{2} = 4\) 與 \(\frac{2}{1} = 2\)。最大的平均值是 \(4.5\),對應的子陣列長度是 \(4\)。
限制
- \(1 \le n \le 2 \cdot 10^5\)
- \(1 \le x_i \le 10^6\)
題目來源
CSES - Maximum Average Subarrays
題目來自 CSES Problem Set(Antti Laaksonen),授權 CC BY-NC-SA 4.0;本頁為翻譯,以相同授權分享。
登入後即可撰寫程式並提交評測。
登入