全國賽happybirthday今天是棟棟的生日他邀了個(gè)好友參朋友們都知道最喜歡_第1頁
全國賽happybirthday今天是棟棟的生日他邀了個(gè)好友參朋友們都知道最喜歡_第2頁
全國賽happybirthday今天是棟棟的生日他邀了個(gè)好友參朋友們都知道最喜歡_第3頁
全國賽happybirthday今天是棟棟的生日他邀了個(gè)好友參朋友們都知道最喜歡_第4頁
全國賽happybirthday今天是棟棟的生日他邀了個(gè)好友參朋友們都知道最喜歡_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、生日【任務(wù)描述】是棟棟的生日,他邀請(qǐng)了 N 個(gè)好友參加 Party。朋友們都知道,棟棟最喜歡吃果凍。因此, 每個(gè)朋友帶來的生日全是一包果凍.。在每個(gè)朋友送他一包果凍的同時(shí),棟棟還要這個(gè)朋友送他一個(gè)幸運(yùn)號(hào)碼 L(1 L N)。然后棟棟會(huì)先把這包果凍放在一旁,并且把之前的所有果凍包按照果凍的數(shù)量從小到大排序(如果果凍數(shù)量相等,先后順序任意)。接著,棟棟再把當(dāng)前這包果凍到有序的果凍包隊(duì)列中,使得這個(gè)隊(duì)列仍然有序(如果存在其他的果凍包與該果凍包數(shù)量相等,則把該果凍包放在它們的前面)。完成這個(gè)操作后,棟棟就會(huì)進(jìn)行如下操作 :如果這個(gè)朋友是男生,棟棟會(huì)從他送的包的后一個(gè)包開始向后數(shù) L 個(gè)(該朋友的幸運(yùn)號(hào)

2、碼),從那個(gè)包里取出一個(gè)果凍,。如果這個(gè)朋友是,棟棟會(huì)從她送的包的前一個(gè)包開始向前數(shù) L 個(gè)(該朋友的幸運(yùn)號(hào)碼),從那個(gè)包里取出一個(gè)果凍,。棟棟實(shí)在是太粗心了,以至于他收完所有的后,都不知道吃過哪些朋友的果凍,現(xiàn)在,他希望你幫他一下,當(dāng)他每吃一個(gè)果凍后馬上的(由于排序不是確定的,所以棟棟只要你給他一種可能的可能吃的是誰送就行了)。這是一個(gè)交互式的題目,你必須調(diào)用庫函數(shù)來完成所有操作而不能件。任何文對(duì)于 Pascal 的用戶:1.使用庫你必須birthday_lib_p 單元,并在源代碼的第一行加入usesbirthday_lib_p;2.庫函數(shù)init:定義:procedure init;調(diào)用

3、:init;說明:這個(gè)函數(shù)在你的程序中必須調(diào)用且僅調(diào)用一次,它的功能是初始化庫。getpresent:定義:function getpresent(var count: long; var luckynumber: long; varisboy:):;調(diào)用:isend := getpresent(count, luckynumber, isboy);其中 count 和 luckynumber 是兩個(gè)長整型的變量,isboy 和 isend 是兩個(gè)量。型變說明:這個(gè)函數(shù)用來獲得下一個(gè)朋友的,count 表示包中果凍的個(gè)數(shù),lukcynumber 是這個(gè)朋友的幸運(yùn)數(shù)字L,isboy 用來標(biāo)志這個(gè)

4、朋友的性別,如果是 true,表示是男生,否則表示是。如果后面還有朋友要送的程序應(yīng)當(dāng)結(jié)束運(yùn)行。,函數(shù)返回 true,否則返回 false,此時(shí)你l:定義:procedurel(const friendid: long);調(diào)用:l(friendid);其中 friendid 可以是任何可以計(jì)算出長整型結(jié)果的表達(dá)式。說明:這個(gè)函數(shù)用來告訴棟棟剛才吃的是第幾個(gè)朋友送的果凍。如果這個(gè)朋友不存在,或者該朋友送的果凍包內(nèi)已無果凍,則 friendid 應(yīng)為-1。每調(diào)用一次 getpresent,如果返回值是 true,必須調(diào)用一次l。blockmsg:定義:procedure blockmsg;調(diào)用:bl

5、ockmsg;說明:這是一個(gè)為了方便調(diào)試而附加的函數(shù)。因?yàn)閷懳募乃俣容^慢,利用此函數(shù)可以庫寫調(diào)用的相關(guān)信息,以便于進(jìn)行速度測試。在實(shí)際測試過程中,這個(gè)函數(shù)將被定義為一個(gè)空函數(shù),你的程序中可以有任意次數(shù)對(duì)該函數(shù)的調(diào)用,你不必?fù)?dān)心因這個(gè)函數(shù)而影響程序的正確性和速度。對(duì)于 C+的用戶:1.使用庫你必須使用birthday_lib_c 庫,并在源代碼中加入#include “010002/birthday_lib_c.h”并在工程加入 010002/birthday_lib_c.o。2.庫函數(shù)init:定義:void init();調(diào)用:init();說明:這個(gè)函數(shù)在你的程序中必須調(diào)用且僅調(diào)用一次,

6、它的功能是初始化庫。getpresent:定義:bool getpresent(long &count, long &luckynumber, bool &isboy);調(diào)用:isend = getpresent(count, luckynumber, isboy);其中 count 和 luckynumber 是兩個(gè)長整型的變量,isboy 和 isend 是兩個(gè)量。型變說明:這個(gè)函數(shù)用來獲得下一個(gè)朋友的,count 表示包中果凍的個(gè)數(shù),lukcynumber 是這個(gè)朋友的幸運(yùn)數(shù)字L,isboy 用來標(biāo)志這個(gè)朋友的性別,如果是 true,表示是男生,否則表示是。如果后面還有朋友要送的程序應(yīng)當(dāng)

7、結(jié)束運(yùn)行。,函數(shù)返回 true,否則返回 false,此時(shí)你l:定義:voidl(const long friendid);調(diào)用:l(friendid);其中 friendid 可以是任何可以計(jì)算出長整型結(jié)果的表達(dá)式。說明:這個(gè)函數(shù)用來告訴棟棟剛才吃的是第幾個(gè)朋友送的果凍。如果這個(gè)朋友不存在,或者該朋友送的果凍包內(nèi)已無果凍,則 friendid 應(yīng)為-1。每調(diào)用一次 getpresent,如果返回值是 true,必須調(diào)用一次l。blockmsg:定義:void blockmsg();調(diào)用:blockmsg();說明:這是一個(gè)為了方便調(diào)試而附加的函數(shù)。因?yàn)閷懳募乃俣容^慢,利用此函數(shù)可以庫寫調(diào)用

8、的相關(guān)信息,以便于進(jìn)行速度測試。在實(shí)際測試過程中,這個(gè)函數(shù)將被定義為一個(gè)空函數(shù),你的程序中可以有任意次數(shù)對(duì)該函數(shù)的調(diào)用,你不必?fù)?dān)心因這個(gè)函數(shù)而影響程序的正確性和速度?!救绾螠y試自己的程序】為了測試自己的程序,你應(yīng)該在程序所在的目錄中建立一個(gè)名為birthday.in 的文件。文件格式如下:文件的第一行為一個(gè)整數(shù)n,表示送的朋友個(gè)數(shù)。接下來n 行,每行三個(gè)整數(shù),總第 i+1 行的三個(gè)整數(shù)分別表示第i 個(gè)朋友送的果凍包內(nèi)的果凍個(gè)數(shù)、幸運(yùn)數(shù)字以及這個(gè)朋友的,如果是男生,用數(shù)字 1表示,如果是,用 0 表示。如果你的目錄下有這個(gè)文件,庫將從這個(gè)文件里面讀入的信息,并把結(jié)果輸出到birthday.out

9、 中,里面可能有如下的信息:call init():調(diào)用函數(shù) initError: recall init():已經(jīng)調(diào)用過 init,又重復(fù)調(diào)用Error: not init:調(diào)用其他函數(shù)前沒有調(diào)用 initgetpresent: *:調(diào)用 getpresent,后面的*是函數(shù)的返回信息god bless:調(diào)用 getpresent,所有的都已經(jīng)處理完,如果你的一切調(diào)用都正確,這句話應(yīng)該是birthday.out 的最后一句Error: no present left:調(diào)用 getpresent 返回 false 后,又調(diào)用了 getpresentError: not told yet:兩次

10、getpresent 之間沒有調(diào)用ll: *:調(diào)用l,后面的*是函數(shù)的參數(shù)信息Error: ear overflow:連續(xù)調(diào)用l,在沒調(diào)用 getpresent 的情況下調(diào)用l或者 getpresent 返回 false 后調(diào)用l在測試自己的程序的時(shí)候,你必須保證你的輸入文件是按照給定格式的,否則可能會(huì)出現(xiàn)運(yùn)行異常?!緮?shù)據(jù)規(guī)模和約定】保證:1 n 500000,0 count 108,1 對(duì)于所有的數(shù)據(jù),luckynumber n.在測試時(shí),你的數(shù)據(jù)也應(yīng)該滿足行異常。的數(shù)據(jù)范圍,否則有可能運(yùn)【評(píng)分方法】如果你的程序出現(xiàn)如下情況,該測試點(diǎn) 0 分:了任何文件(包括臨時(shí)文件);調(diào)用庫函數(shù);讓測試庫

11、異常退出;錯(cuò)誤。否則該測試點(diǎn)得滿分?!緲永縝irthday.inPascal 源程序usesbirthday_p;varcount, luckynumber: long; isboy:;begininit;332 1 11 1 123 1 0C+源程序#include birthday_cpp.hlong count, luckynumber;bool isboy;main()init();getpresent(count, luckynumber, isboy); l(-1);getpresent(count, luckynumber, isboy); l(1);getpresent(co

12、unt, luckynumber, isboy); l(2);getpresent(count, luckynumber, isboy);getpresent(count, luckynumber, isboy); l(-1);getpresent(count, luckynumber, isboy); l(1);getpresent(count, luckynumber, isboy); l(2);getpresent(count, luckynumber, isboy);end.運(yùn)行后,庫將生成如下信息在birthday.out 中call init()getpresent: count=32,luckynumber=1,isbo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論