給定 \(n\) 個整數 \(a_1,a_2,…a_n\)。
請你從中選出 \(k\) 個數,使其乘積最大。
請你求出最大的乘積,由於乘積可能超出整型範圍,你只需輸出乘積除以 \(1000000009\) 的餘數。
注意,如果 \(x<0\), 我們定義 \(x\) 除以 \(1000000009\) 的餘數是負\((−x)\)除以 \(1000000009\) 的餘數,即:\(0−((0−x)%1000000009)\)
第一行包含兩個整數 \(n\) 和 \(k\)。
以下 \(n\) 行每行乙個整數 \(a_i\)。
輸出乙個整數,表示答案。
資料範圍
\(1≤k≤n≤10^5,\)
\(−10^5≤ai≤10^5\)
輸入樣例1:
5 3
-100000
-10000
2100000
10000
輸出樣例1:999100009
輸入樣例2:5 3
-100000
-100000
-2-100000
-100000
輸出樣例2:-999999829
模擬先排序,分情況討論:
時間複雜度:\(o(nlogn)\)
// problem: 乘積最大
// contest: acwing
// url:
// memory limit: 64 mb
// time limit: 1000 ms
// // powered by cp editor (
// %%%skyqwq
#include //#define int long long
#define help
#define pb push_back
#define fi first
#define se second
#define mkp make_pair
using namespace std;
typedef long long ll;
typedef pairpii;
template bool chkmax(t &x, t y)
template bool chkmin(t &x, t y)
template void inline read(t &x)
while (s <= '9' && s >= '0') x = x * 10 + (s ^ 48), s = getchar();
x *= f;
}const int mod=1000000009;
int n,k,a[100005];
int main()
while(k)
else
k-=2;
}cout
}
1017 乘積最大
題目描述 description 今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友xz也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目 設有乙個長度為n的數...
1017 乘積最大
題目描述 description 今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友xz也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目 設有乙個長度為n的數...
8782 乘積最大
name 8782 乘積最大 author date 27 06 18 09 17 description 8782 乘積最大 檢視 提交 統計 提問 總時間限制 1000ms 記憶體限制 65536kb 描述今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年...