2016年1月13日 星期三

a271: 彩色蘿蔔

內容 :
在一個神奇的國度裡,有一種兔子,它只吃蘿蔔,且每天只吃一個,蘿蔔有四種顏色,分別為:紅蘿蔔,白蘿蔔,黃蘿蔔,發霉的蘿蔔(黑色),兔子吃了蘿蔔之後,體重會有不同的變化,紅蘿蔔吃了胖xg,白蘿蔔吃了胖yg,黃蘿蔔吃了瘦zg(醃黃蘿蔔真難吃...),發霉的蘿蔔吃了瘦wg(附加狀態:中毒...),現在給你x,y,z,w問你幾天後,兔子的體重!
p.s.中毒會使兔子每天瘦ng(中毒當天不算),且中毒狀態可累加,m是兔子初始的體重。早上先中毒,晚上才吃東西

上面的敘述很重要,要仔細看!
輸入說明 : 
第一行是測資的筆數,每筆測資第一行是x,y,z,w,n,m,第二行是一串數字,1代表紅蘿蔔,2代表白蘿蔔,3代表黃蘿蔔,4代表黑蘿蔔,0代表沒吃。這一行中的數字為兔子這段時間內所吃的食物。
輸出說明 : 
請輸出兔子在那段時間後所剩的體重,如果體重有在任意時刻少於等於0請輸出:"bye~Rabbit"(不含引號),不然請印出結束時的體重。(詳情參照範例輸入輸出)
有可能問你第一天的體重歐!(就是問初始體重,也就是那根本沒輸入)例如如:13 312 43 432 567
//空一行

輸出為:567
範例輸入 : help
4
5 3 2 4 3 10
1 1 2 3 3 3 3 4 3 3
5 3 2 4 3 10
1 1 2 3 3 3 3 4 3 3 2 2 2 2 2 2 2
5 3 2 4 3 10
4 1 3 3 1 1 2 2 1 1 3 1 1 1 1 4
10 3 2 2 1 5
1 4 4 0 0 4 1 2 2 2 0 0 2 2 0
範例輸出:
1g
bye~Rabbit
bye~Rabbit
bye~Rabbit


import java.util.Scanner;
 public class a271 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int i,x,y,z,w,n,m;
i=sc.nextInt();
for(int j=0;j<i;j++){
x=sc.nextInt(); y=sc.nextInt(); z=sc.nextInt();
    w=sc.nextInt(); n=sc.nextInt(); m=sc.nextInt();
sc.nextLine();            //食物換行
String food=sc.nextLine();   //食物
boolean isDead=false;
if(food.equals("")){
System.out.println(m+"g");
continue;
}
else{
int poi=0;
for(int k=0;k<food.length();k+=2){
int foodtype=food.charAt(k)-'0';
if(poi>0)
m-=poi;
if(m<0){
isDead=true;
   break;
}
switch(foodtype){
 case 1: m+=x; break;
 case 2: m+=y; break;
 case 3: m-=z; break;
 case 4: m-=w; poi+=n; break;
}
}
if(m<0)
isDead=true;
if(isDead)
System.out.println("bye~Rabbit");
else
System.out.println(m+"g");
}
}
}
}

沒有留言:

張貼留言