2013程式設計之美全國挑戰賽 競價

2021-06-16 13:38:41 字數 1138 閱讀 2415

description

alice和bob都要向同乙個商人購買鑽石。商人手中有 n 顆鑽石,他會將它們一顆顆地賣給他們,alice和bob通過競價的方式來決定鑽石的歸屬。具體的過程如下:商人首先指定其中乙個人開始**,之後兩人輪流**,要求是一定要比對方報的**更高。任何時候,如果乙個人不願出價或者出不起價錢時,可以宣布棄權,則對手以最後一次報的**將鑽石買下。當然,如果兩人都沒錢,商人是不會賣鑽石的。首次**至少為 1,並且只能報整數的價錢。

alice和bob特別愛攀比,因此他們都希望能比對方買到更多的鑽石。alice和bob各自帶了 ca 和 cb 的錢用於競拍鑽石。此外,alice和商人有很不錯的私人關係,因此商人總是會讓alice先**。現在請問,在alice和bob都用最優策略的情況下,誰能買到更多鑽石?假設雙方都知道對方手中的現金數量,以及商人將要拍賣的鑽石數量 n。

input

輸入檔案包含多組測試資料。

第一行,給出乙個整數t,為資料組數。接下來依次給出每組測試資料。

每組資料為三個用空格隔開的整數 n,c

a,cb,表示鑽石的數量,以及雙方帶的現金數量。

1 ≤ t ≤ 1000

小資料:0 ≤ n ≤ 10; 0 < c

a, c

b ≤ 10

大資料:0 ≤ n ≤ 10

5; 0 < c

a, c

b ≤ 10

6 output

對於每組測試資料,輸出一行"case #x: y",其中x表示測試資料編號,y的取值為,-1表示alice買到的鑽石會比bob少,0表示兩人能買到一樣多,1表示alice能買到更多鑽石。所有資料按讀入順序從1開始編號。

sample input

2

4 3 5

7 4 7

sample output

case #1: 0

case #2: 1

這題做很久不會,表示數學基礎太差,貼乙個zhaw(排名10)的**:
#include #include #include #include #include using namespace::std;

int main()

else

cout<<"case #"<

2013程式設計之美全國挑戰賽

description alice和bob都要向同乙個商人購買鑽石。商人手中有 n 顆鑽石,他會將它們一顆顆地賣給他們,alice和bob通過競價的方式來決定鑽石的歸屬。具體的過程如下 商人首先指定其中乙個人開始 之後兩人輪流 要求是一定要比對方報的 更高。任何時候,如果乙個人不願出價或者出不起價錢...

2013程式設計之美全國挑戰賽

description 對於兩個長度相等的字串,我們定義其距離為對應位置不同的字元數量,同時我們認為距離越近的字串越相似。例如,0123 和 0000 的距離為 3,0123 和 0213 的距離則為 2,所以與 0000 相比,0213 和 0123 最相似。現在給定兩個字串 s1 和 s2,其中...

程式設計之美2013全國挑戰賽測試賽

題目列表 a b 時間限制 1000ms 記憶體限制 1024mb 輸入兩個正整數a和b,求a b的值 兩個正整數a,b a b的和 對於小資料,0 a,b 10 對於大資料,0 a,b 10 100樣例輸入 2 3 樣例輸出 5 如下 1 include 2 include 3 include 4...