北大程式設計與演算法(三)測驗題彙總(2020春季)
為了迎接08年的奧運會,讓大家更加了解各種格鬥運動,facer新開了一家冷血格鬥場。格鬥場實行會員制,但是新來的會員不需要交入會費,而只要同一名老會員打一場表演賽,證明自己的實力。
我們假設格鬥的實力可以用乙個正整數表示,成為實力值,兩人的實力值可以相同。另外,每個人都有乙個唯一的id,也是乙個正整數。為了使得比賽更好看,每乙個新隊員都會選擇與他實力最為接近的人比賽,即比賽雙方的實力值之差的絕對值越小越好,如果有多個人的實力值與他差別相同,則他會選擇id最小的那個。
不幸的是,facer一不小心把比賽記錄弄丟了,但是他還保留著會員的註冊記錄。現在請你幫facer恢復比賽紀錄,按照時間順序依次輸出每場比賽雙方的id。
輸入第一行乙個數n(0 < n <=100000),表示格鬥場新來的會員數(不包括facer)。以後n行每一行兩個數,按照入會的時間給出會員的id和實力值。一開始,facer就算是會員,id為1,實力值1000000000。
輸出n行,每行兩個數,為每場比賽雙方的id,新手的id寫在前面。
樣例輸入
32 3
3 14 2
樣例輸出
2 13 2
4 2該題需要注意的是格鬥的實力可以用乙個正整數表示,成為實力值,兩人的實力值可以相同,那麼可以選擇multimap
實現資料儲存;又因存在實力相同的人,那麼我們每次比較之後,可以將實力相同,但是編號較小者留下,編號較大者刪除,因為不刪除的話,進行後續操作,可能選的並不滿足題目條件:如果有多個人的實力值與他差別相同,則他會選擇id最小的那個。
#include
#include
using namespace std;
multimap<
int,
int> data;
void
delete_max
(multimap<
int,
int>
::iterator i,multimap<
int,
int>
::iterator j)
}int
main()
else
if(im ==
(--data.
end())
)else
else}}
}
冷血格鬥場
傳送門 冷血格鬥場 總時間限制 1000ms 記憶體限制 65536kb 描述 為了迎接08年的奧運會,讓大家更加了解各種格鬥運動,facer新開了一家冷血格鬥場。格鬥場實行會員制,但是新來的會員不需要交入會費,而只要同一名老會員打一場表演賽,證明自己的實力。我們假設格鬥的實力可以用乙個正整數表示,...
熱血格鬥場和冷血格鬥場
好的吧,過去很久的題目了,現在補一發。跟格鬥場有仇。每個都提交了十幾次。先摘一下題目。5 熱血格鬥場 描述 為了迎接08年的奧運會,讓大家更加了解各種格鬥運動,facer新開了一家熱血格鬥場。格鬥場實行會員制,但是新來的會員不需要交入會費,而只要同一名老會員打一場表演賽,證明自己的實力。我們假設格鬥...
c 程式設計練習 042 熱血格鬥場
北大程式設計與演算法 三 測驗題彙總 2020春季 為了迎接08年的奧運會,讓大家更加了解各種格鬥運動,facer新開了一家熱血格鬥場。格鬥場實行會員制,但是新來的會員不需要交入會費,而只要同一名老會員打一場表演賽,證明自己的實力。我們假設格鬥的實力可以用乙個正整數表示,成為實力值。另外,每個人都有...