111. DER UNTERGANG - 帝國最勇敢的母親

0 Judge

Code: 0


DER UNTERGANG - 帝國最勇敢的母親

題目敘述

「有甚麼消息,將軍」蘇聯的朱可夫元帥問到,「阿道夫.希特勒和他的妻子在地下掩體裡自殺了。新政府授權我與你們進行和平談判,我們兩國在戰爭中蒙受了最大的損失」克萊柏斯將軍的俄語說得非常流利,「將軍,如果你是我,你會和我講和嗎?」「我的政府不會接受無條件投降」「根據目前的情勢,你沒有其他選擇」俄國人冷酷地說道。

「kapitulieren? niemals! 太可恥了!幾年前,我從紅軍手中佔領了柏林,我將誓死保衛這座城市,在我仍然身為帝國首相的這幾個小時裡,我是不會簽投降協議的」戈培爾對著一群將軍們罵道,「我們必須保護老百姓」「元首的命令是不可改變的」「太荒唐了,我們必須進行談判」眾將軍七嘴八舌地討論著。「我再說一遍,我絕不投降!」戈培爾依然維持己見,這時一名將軍直接離開會議室向電報室走去,「馬上發電報給朱可夫元帥」「朱可夫元帥?」,「怎麼回事?」一旁趕來一些反對投降的將軍,「這太荒唐了,我們必須把城市交給俄國人」「那我先殺了你,元首不允許投降」其中一個反對投降的將軍憤怒地舉起槍來,槍聲一響,並沒有人傷亡,將軍的手被後方的人抓住。

另一間房間中,戈培爾夫人和醫生也聽到了槍響,他們正在調製安眠藥,這是為了讓他們的小孩不必面對死亡的恐懼而做的。但是安眠藥如果劑量過多了就會造成死亡,到時候餵安眠藥時就會讓小孩直接死去,這樣其他沒死去的小孩會有心理負擔,而且可怕的是,剛好可以讓人昏睡的藥劑量在加一單位的藥劑後就會達到讓人死亡的程度。為了避免這種情況,醫生找來了兩隻老鼠接受實驗,已知喝下的安眠藥劑量都只能是正整數且會讓人死亡的劑量不管老鼠還是小孩都相同。因為在戰爭中,當老鼠死亡後不會有新的老鼠替補,所以最多只能讓兩隻老鼠死亡,一個人或老鼠最少可以喝下$1$單位的藥劑,最多可以喝下$2147483647$單位的藥劑,因為做實驗太麻煩了,所以他決定請你來幫忙他,你完成後他會送你一個大大的AC喔。

「多長時間發作?」「大約四小時」終於配置完安眠藥,醫生滿意的點了點頭。醫生陪著戈培爾夫婦,帶著配置好的藥劑奏向他們小孩的房間,隔著房門隱約可以聽到大女兒在念童話故事給其他小孩聽。戈培爾夫人把門打開「孩子們,醫生帶了了之前跟你說的藥,海德,你最勇敢,你先來」,一個小妹妹接過高腳杯,喝了一口,「看見沒有,沒那麼難喝吧」戈培爾夫人依然笑笑的。「孩子們,你們很勇敢,這些藥會讓你們在潮濕的掩體中不會生病」醫生嚴肅的說,「可是現在掩體一點也不潮溼啊」海德天真地說。「赫爾嘉」戈培爾夫人將要端到了長女前面,「我不想喝」「甚麼?你想生病嗎?」「求你了,媽媽,我不想喝」她哭了起來,「別哭寶貝,哭是沒用的」,醫生將要拿到她的嘴邊「來吧!赫爾嘉!赫爾嘉!現在喝吧,喝吧,來吧,把嘴張開」,赫爾嘉不斷掙扎「爸爸...」,醫生趁她張口的時候,將藥灌了進去。

sprout

赫爾嘉喝完藥後,立刻掙脫了母親的懷抱,趴在床上啜泣起來。「好了,晚安孩子們」他們將燈關上離開了房間,戈培爾一直一言不發的站在房間外...。當戈培爾向洪普斯口述完他的遺言後,他的太太來到了他的面前,算一算時間也過了四個小時了,他們進入了孩子們的房間,孩子們都已完全昏睡,連赫爾嘉都沒有任何動靜。母親將元首給的,裝有氰化鉀的膠囊塞入孩子們的嘴哩,讓他們咬破,當所有孩子都死去時,戈培爾夫人難過得哭了起來,他胸前別了一枚卐字胸章,那是元首在他死前和大家道別的時候送的,他那時候對夫人說「你是帝國最勇敢的母親」。夫人蹲坐在地上,戈培爾向她走來,打算牽她的手,但她立刻站起來朝門外走去...

Erklärung

本題為互動題,你所上傳的程式碼必須包含main函式,並在開頭#include"SunMoon.h",你的程式需要用到下列三個函式(可以直接在你的程式中呼叫這些函式),其中try_poison函式不能呼叫超過$92680$次,同時請不要在main函式內使用任何I/O function。

void initialize();

initialize:初始化一些變數,在測試開始前請記得呼叫此函式,否則出了任何問題一概不負責,呼叫超過一次你會獲得Wrong Answer。

int try_poison( int x );

try_poison:對還沒死亡的其中一隻老鼠餵x單位的安眠藥,你必須保證$1 \leq x \leq 2147483647$,如果不再這個範圍內你將獲得Wrong Answer。回傳值為1代表老鼠吃了藥之後還活著,0代表老鼠吃了藥死了,當每次餵完藥之後只要老鼠沒死醫生會幫他餵解藥,所以只要沒死,老鼠可以重複使用。因為時間的關係,若呼叫超過$92680$次或是在兩隻老鼠都死亡時呼叫你將獲得Wrong Answer。

void answer( int x );

answer:如果你已經確定剛好可以讓人昏睡的藥劑量,那麼請呼叫此函式,x為你的答案。若結果錯誤或呼叫超過一次將獲得Wrong Answer。

Examples

以下是一個可以執行但會Wrong Answer的code

#include"SunMoon.h" 
int main(){
    initialize();
    for(int i=1;i<=2147483647;++i){
        if(!try_poison(i)){
            answer(i-1);
            break;
        }
    }
    return 0;
}

限制:

時限 10ms
記憶體 204800 bytes

Judge Setting

run-time limit: 10 ms
memory limit: 204800 byte
測資數量: 0