Problem Q 小熊與糖果
阿新 • • 發佈:2018-12-22
樣例資料
輸入
10
3 2
4 2
1 1
1 2
1 3
9 3
9 11
9 12
9 1000
8 11
輸出
Bob
Limak
Limak
Bob
Bob
Limak
Limak
Bob
Bob
Bob
樣例解釋
在第一組資料中,Limak 先吃一顆糖,然後 Bob 吃兩顆,接著改 Limak 吃 3 顆了,但是它已
經沒法吃這麼多了,所以 Bob 獲勝。
在第二組資料中,輪到 Bob 吃 4 顆糖的時候吃不下了,所以 Limak 獲勝。
在第八組資料中,輪到 Limak 吃 7 顆糖的時候吃不了了,所以 Bob 獲勝。
時間限制
1 秒
#include<stdio.h> int Lim[1005] = {0},Bob[1005] = {0};//輸入的兩人最多能吃的糖的數量 int Lim_stan[1005] = {0},Bob_stan[1005] = {0};//理論兩人最多能吃的糖的數量 int flagLim[1005] = {0},flagBob[1005] = {0};//分別的標誌位 int main() { freopen("input.txt","r",stdin); int t = 0; for(int i = 1;i <= 1000;i++) { Lim_stan[i] = 2*i-1; Bob_stan[i] = 2*i; } scanf("%d",&t); for(int i = 1;i <= t;i++) { scanf("%d %d",&Lim[i],&Bob[i]); } for(int i = 1;i <= t;i++) { int a = Lim[i],b = Bob[i],j = 1; do{ //printf("%d\n%d %d %d\n",a,b,Lim_stan[j],Bob_stan[j]); a = a - Lim_stan[j]; if(a < 0) { flagLim[i] = 1; break; } b = b - Bob_stan[j]; if(b < 0) { flagBob[i] = 1; break; } j++; }while(a >= 0 && b >= 0); //printf("****************\n"); } for(int i = 1;i <= t;i++) { if(flagLim[i] == 1 && flagBob[i] == 0) printf("Bob\n"); if(flagLim[i] == 0 && flagBob[i] == 1) printf("Limak\n"); } return 0; }