close

內容
在一個神奇的國度裡,有一種兔子,它只吃蘿蔔,且每天只吃一個,蘿蔔有四種顏色,分別為:紅蘿蔔,白蘿蔔,黃蘿蔔,發霉的蘿蔔(黑色),兔子吃了蘿蔔之後,體重會有不同的變化,紅蘿蔔吃了胖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

 

C++

//根據小提示
//修改while裡面的程式來完成 
#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main()
{
	int in1;
	stringstream stream;//建立一個字串串流
	string istr1;//建立一個字串
	while(cin>>in1)//輸入有幾組測資 
	{
		int x,y,z,w,n,m;
		
		while(in1--)
		{
			
			cin>>x>>y>>z>>w>>n>>m;//輸入資料 
			getline(cin,istr1);//因為getline接在cin後面會出問題所以要用兩次 
			getline(cin,istr1);
			
			stream.clear();//清空
			stream.str("");//清空
			
			
			if(istr1=="")//輸入沒東西就直接輸出體重 
			{
				cout<<m<<"g"<<endl;
			}
			else
			{
				stream<<istr1;
				
				bool life=true;//判斷兔子有無活著 
				int cn1,poison=0;
				
				while(stream>>cn1)//cn1是蘿蔔的數字 每輸入一次就判斷兔子死了沒 
				{
				
					m=m-n*poison;//早上先毒發一次 毒會疊加 
				
					if(m<=0)//判斷有沒有毒發身亡 
					{
						life=false;
						break;
					}
					
					//判斷吃了何種蘿蔔 
					if(cn1==1)
					{
						m+=x;
					}
					else if(cn1==2)
					{
						m+=y;
					}
					else if(cn1==3)
					{
						m-=z;
						if(m<=0)//判斷有沒有瘦死 
						{
							life=false;
							break;
						}
					}
					else if(cn1==4)
					{
						m-=w;
						if(m<=0)
						{
							life=false;
							break;
						}
						poison++;//毒素疊加 
					}
					
				}
				
				//輸出 
				if(life)
				{
					cout<<m<<"g"<<endl;
				}
				else
				{
					cout<<"bye~Rabbit"<<endl;
				}
			}
		}
	}
	return 0;
}
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 豪CO 的頭像
    豪CO

    程式道路,必為豐富

    豪CO 發表在 痞客邦 留言(0) 人氣()