問題描述
一年一度的雙十一又來了,某網購**又開始了半價銷售的活動。
小g打算在今年的雙十一裡盡情地購物,以享受購買的極度快感,她已經列好了她想買的物品的列表。
當然小g並不是出身富貴家庭,所以她網銀裡的錢只是乙個有限的整數s(單位:元)。
這次搶購她打算遵循這三個原則選擇每乙個物品:
1.先買能「賺」最多的;
2.在「賺」一樣多的情況下,先買最便宜的(這樣買的東西就可能更多了);
3.在前兩條裡都判斷不了購買順序的話,先購買在列表裡靠前的。
(由於**裡還是有一部分商品並沒有打五折,所以2的情況(「賺」的錢數為0)是完全可能發生的)
現在,在雙十一的這一天,你要幫小g編寫乙個程式,來看看她應該去買她列表裡的哪些物品。(總**不要超過s哦)
要是幫她寫好這個程式的話,或許你能在光棍節這一天裡贏得她的芳心哦~
輸入格式
輸入共n+1行。
第一行包含兩個整數s和n,s表示小g的可用金額,n表示她看上的物品個數。
接下來n行,對應每乙個物品,每行有兩個整數a和b,a是物品的原價(單位:元),b為0或1,若b為0,則此物品不半價,若b為1,則此物品半價銷售。
輸出格式
輸出共一行,為小g要買的物品序號(從1開始),用空格隔開,注意按序號從小到大輸出。
若小g一件都買不了,則輸出0.
#include
using
namespace std;
/*typedef struct thing;*/
struct thing
;int
main
(int argc,
char
*ar**)
for(i=
0;i1;i++)if
(a[j]
.price==a[j+1]
.price)}}
}for
(i=0
;ifor(i=
0;i1;i++)}
if(a[j]
.price==a[j+1]
.price)}}
for(i=
0;iif(k!=0)
}}for(i=
0;i) cout<.num+
1<<
" ";
cout<}else
cout<<
0
}
若想更簡潔,可參考 藍橋杯 試題 演算法提高 雙十一搶購
資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 一年一度的雙十一又來了,某網購 又開始了半價銷售的活動。小g打算在今年的雙十一裡盡情地購物,以享受購買的極度快感,她已經列好了她想買的物品的列表。當然小g並不是出身富貴家庭,所以她網銀裡的錢只是乙個有限的整數s 單位 元 這次搶購她...
粉嫩公主雙十一搶購,新品限量搶購
雙十一來啦 不到11月,雙十一大戰序幕就已然拉開,買買買 剁剁剁 正如火如荼進行中。和往年相比,今年雙十一 一樣卻又不一樣 一樣的是大家的購買熱情未減,不一樣的是粉嫩公主變得更貼近消費者,今年雙十一,粉嫩公主憑藉優質 健康 味美 有效等特點,送萬份好禮,更有新品限量搶購,雙色球贏免單 粉嫩公主作為女...
雙十一搶購淨水器哪個牌子好也得有竅門
一年一度雙十一有快開啟,優惠搶購,清空購物車,也需要懂得把握技巧,淨水器選購物美價廉的產品更要懂得其中的竅門。淨水器品牌數量眾多,不能貪圖便宜,只看低 而忽視產品質量和淨化效果,因程式設計客棧此我們要從眾多優質品牌中挑選出合適的產品。將優質品牌的淨水器加入購物車,貨比三家,根據自家飲水習慣,挑選出靠...