你聽過超文字咖啡壺控制協定(英文:Hyper Text Coffee Pot Control Protocol,HTCPCP)嗎?那是一種可以讓你邊寫程式,邊泡咖啡的方便網路協定。
那你有沒有想過,如果你可以邊寫程式,邊照顧你可愛的妹妹該有多好,沒錯,你需要的是,超文字妹妹控制協定(英文:Hyper Text IMouTo Complex Protocol,HTICP),簡稱妹控協定。
一個「超文字妹妹控制伺服器(妹控伺服器)」或稱HTICP Server,必須要可以收集並管理所有妹妹的資料,這樣才能方便你關心你最愛的妹妹們最近過的怎麼樣。
對於一個簡化版的HTICP Server,我們只要紀錄妹妹們的名字還有說過的話就可以了。
現在我們希望你可以實作一個HTICP Server。
HTICP Server必須處理請求。
一個HTICP Server共有四種方法(method),分別是
Get
Post
New
Delete
要注意method是不分大小寫的,GET
、Get
和get
都是指同一個method。
每個請求,會傳給HTICP Server一個請求封包,格式如下:
'method','name','message'
或'method','name'
如果method是New
或Post
,就是第1種;如果method是Get
或Delete
,就是第2種。
收到請求後,HTICP Server必須回復請求。
一個HTICP Server共有五種回復狀態碼(status code),分別是:
200 ONiiChaN!
201 HaJiMeMaShiTe
202 SaYouNaRa
403 IMouTo Unhappy!
404 IMouTo Not Found!
對於每個請求,HTICP Server必須回傳一個回覆封包,格式如下:
'status code','name','message'
或'status code','name'
如果遇到的method是Get
,就是第1種;如果遇到的method是New
、Delete
或Post
,就是第2種。
至於每個method的處理方法都不同,
如果是'New','A','B'
,請新增一個名字是A的妹妹,並把妹妹A說的話B紀錄下來。
如果成功,回傳狀態碼201 HaJiMeMaShiTe
;如果妹妹已經新增過了,回傳狀態碼403 IMouTo Unhappy!
。
如果是'Delete','A'
,請刪除一個名字是A的妹妹。
如果成功,回傳狀態碼202 SaYouNaRa
;如果找不到這個妹妹,回傳狀態碼404 IMouTo Not Found!
。
如果是'Get','A'
,請查詢一個名字是A的妹妹,並把妹妹A說的話放進回覆封包中的message欄位。
如果成功,回傳狀態碼200 ONiiChaN!
;如果找不到這個妹妹,回傳狀態碼404 IMouTo Not Found!
。.
如果是'Post','A','B'
,請紀錄一個名字是A的妹妹說的話,請把那句話接在妹妹A之前說過的話後面,每句話用一個字元'\'隔開來。
如果成功,回傳狀態碼200 ONiiChaN!
;如果找不到這個妹妹,回傳狀態碼404 IMouTo Not Found!
。
請參考範例測資。
第一行有一個數字n,代表總共有n個請求。
接下來有n行,每行有一個字串S,代表請求封包。
對於33%的測試資料,滿足n≤2000。
對於66%的測試資料,滿足n≤25000。
對於100%的測試資料,滿足n≤106 ,妹妹的名字不超過10個字元,而且只會是大小寫英文字母;字串S總長度不超過100,而且不包含空白字元。
對於每個請求封包,請輸出相對應的回覆封包。請參考範例輸出。
等到你寫完,才發現,你沒有那麼多的妹妹。
使用C++者,可以在main最前面加入
std::ios::sync_with_stdio(false);std::cin.tie(0);
,以加快IO處理
果茶
2015建中校內資訊能力競賽
No. | Testdata Range | Score |
---|---|---|
1 | 0~2 | 40 |
2 | 3~5 | 30 |
3 | 6~9 | 30 |