2020寒假 gmoj2090 最大值

2021-10-02 14:38:07 字數 1137 閱讀 6691

給定n個數,{x1,x2,…,xn}要求從中選出至少乙個數,至多n個數,使得乘積之和最大。

第一行整數n,表示有多少個數

接下來n行,每行乙個整數xi,-10 ≤xi≤ 10

輸出一行,表示最大乘積

sample input1:3-1

2-4sample input2:33

2-4sample output1:

sample output2:對於70%的資料:1 ≤ n ≤ 9

對於100%的資料: 1 ≤ n ≤ 18,-10 ≤xi≤ 10

這題要開long long!!

輸入的時候,我們判斷三種情況:

xi>0 這時用乙個sum直接乘起來

xi<0 這時我們用乙個f記錄負數的個數,b[f]把負數存起來,還用s1把所有負數的乘積算出來。

xi=0 跳過

然後我們把b陣列做乙個排序(從小到大)

如果s1>0,直接輸出s1*sum;

如果f%2!=0,那我們就忽略最大那個負數(絕對值最小),跟sum乘起來。

#include

#include

#include

#include

using

namespace std;

long

long n,f,s=

1,s1=

1,a[20]

;int

main()

if(x<0)

if(x>

0) s*

=x;}

for(

int i=

1;i<=f-

1;i++

)for

(int j=i+

1;j<=f;j++)if

(a[i]

>a[j]

)swap

(a[i]

,a[j]);

if(s1>

0&&f%2==

0) cout

if(f%2!=

0)cout<}fclose

(stdin);

fclose

(stdout);

return0;

}

2020寒假 gmoj2380 白板

pywbktda有一塊白板,這塊白板的四條邊分別平行於座標軸。我們可以假設這塊白板的左 下角在 x 1 y 1 位置,右上角在 x 2 y 2 位置。現在有兩塊黑板放到白板的上面,這兩塊黑板的四條邊也是平行於座標軸的。我們可以設第1塊 黑板的左下角是 x 3 y 3 右上角在 x 4 y 4 位置,...

2020寒假 gmoj1876 約會

農場主約翰養了兩群有世仇的牛,它們被稱為蒙塔戈斯家族和卡普魯特家族。蒙塔戈斯家族的成員,羅密歐,愛上了美麗的朱麗葉,但後者正好是卡普魯特家族的成員。羅密歐希望與朱麗葉約會,但不希望卡普魯特家族的其他成員發現 否則會有可怕的事情發生!羅密歐和朱麗葉希望在牧場柵欄邊一塊盡可能大的區域中相見,這樣他們可以...

2020寒假 gmoj2379 怪獸 模擬

pywbktda最近正在打怪獸,乙個斯拉夫神話中的兇猛怪獸,乙個有著多個頭的巨大龍狀爬行 動物。開始的時候,怪獸有x個頭,你有n種打擊方式。如果你選擇第i種打擊方式,這個神奇的怪獸會減 少min d i cur 個頭。這裡cur表示當前怪獸擁有的頭的數量。但是如果怪獸被打擊以後還至少留下 了乙個頭,...