標籤:
放盤子 Accepts: 182 Submissions: 450 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Problem Description
小度熊喜歡惡作劇。今天他向來訪者們提出一個惡俗的遊戲。他和來訪者們輪流往一個正多邊形內放盤子。最後放盤子的是獲勝者,會贏得失敗者的一個吻。玩了兩次以後,小度熊發現來訪者們都知道遊戲的必勝策略。現在小度熊永遠是先手,他想知道他是否能獲勝。
注意盤子不能相交也不能和多邊形相交也不能放在多邊形外。就是說,盤子內的點不能在多邊形外或者別的盤子內。
Input
第一行一個整數TT,表示TT組資料。每組資料包含33個數n,a,r (4 \leq n \leq 100,0 < a < 1000,0 < r < 1000)n,a,r(4≤n≤100,0<a<1000,0<r<1000)
nn是偶數,代表多邊形的邊數,aa代表正多邊形的邊長,rr代錶盤子的半徑。
Output
對於每組資料,先輸出一行
Case #i:
然後輸出結果.如果小度熊獲勝,輸出”Give me a kiss!” 否則輸出”I want to kiss you!”
Sample Input
24 50 2.54 5.5 3
Sample Output
Case #1:Give me a kiss!Case #2:I want to kiss you!Hint在第一組範例中,小度熊先在多邊形中間放一個盤子,接下來無論來訪者怎麼放,小度熊都根據多邊形中心與來訪者的盤子對稱著放就能獲勝。//方法Hint中已經給出了,所以只要判斷第一次能否放進去就行啦,求出內接圓半徑比較一下就好了#include<stdio.h> #include<math.h>int main(){int ncase,n,count=0;double a,r;scanf("%d",&ncase);while(ncase--){scanf("%d %lf %lf",&n,&a,&r);count++;double Pi=3.1415926;double R=tan(Pi*(n-2)/n/2)*a/2;//printf("%lf\n",R); printf("Case #%d:\n",count);if(r<=R) printf("Give me a kiss!\n"); else printf("I want to kiss you!\n"); }}
bestcoder 放盤子