1239 乘積最大

2022-09-21 07:27:07 字數 1543 閱讀 9769

給定 \(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周年...