a271. 彩色蘿蔔
內容 :
在一個神奇的國度裡,有一種兔子,它只吃蘿 蔔,且每天只吃一個,蘿蔔有四種顏色,分別為:紅蘿蔔,白蘿蔔,黃蘿蔔,發霉的蘿蔔(黑色),兔子吃了蘿蔔之後,體重會有不同的變化,紅蘿蔔吃了胖xg, 白蘿蔔吃了胖yg,黃蘿蔔吃了瘦zg(醃黃蘿蔔真難吃...),發霉的蘿蔔吃了瘦wg(附加狀態:中毒...),現在給你x,y,z,w問你幾天後,兔子 的體重!
p.s.中毒會使兔子每天瘦ng(中毒當天不算),且中毒狀態可累加,m是兔子初始的體重。早上先中毒,晚上才吃東西。
(新手出題,如有誤,請提醒)
上面的敘述很重要,要仔細看!
輸入說明
:
第一行是測資的筆數,每筆測資第一行是x,y,z,w,n,m,第二行是一串數字,1代表紅蘿蔔,2代表白蘿蔔,3代表黃蘿蔔,4代表黑蘿蔔,0代表沒吃。這一行中的數字為兔子這段時間內所吃的食物。
輸出說明
:
範例輸入 :
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
提示
:
兔子!你咬什麼數入一行!
翻譯:你要怎麼輸入一行?(Sorry!梗被兔子吃了..)
小提示:
/*這是一個用來把每行的數字加起來的程式*/
/*請自行更改<>大小寫*/
#include<iostream>
#include<sstream>//字串串流用標頭檔
using namespace std;
int main(){
stringstream stream;//建立一個字串串流
string s;//建立一個字串
while(getline(cin,s)){//輸入一行
stream.clear();//清空字串串流
stream<<ss
int a,b=0;//建立變數
while(stream>>a){//輸入這行中的變數
b+=a;//把b加上a
}
cout<<b<<endl;}
return 0;
}
//第二筆測資大得不得了...請小心...(有十萬筆)
出處
:
/**********************************************************************************/
/* Problem: a271 "彩色蘿蔔" from 兔子 */
/* Language: C (684 Bytes) */
/* Result: AC(74ms, 316KB) judge by this@ZeroJudge */
/* Author: morris1028 at 2011-10-28 09:07:00 */
/**********************************************************************************/
#include<stdio.h>
int main() {
int T, x, y, z, w, n, m;
char s[10000];
scanf("%d", &T);
while(T--) {
scanf("%d %d %d %d %d %d", &x, &y, &z, &w, &n, &m);
gets(s), gets(s);
int poison = 0, tmp;
int i, flag = 0;
if(m <= 0) flag = 1;
for(i = 0; s[i] && flag == 0; i++) {
if(s[i] >= '0' && s[i] <= '9') {
tmp = s[i]-'0';
m += poison;
if(m <= 0) flag = 1;
switch(tmp) {
case 0:break;
case 1:m += x;break;
case 2:m += y;break;
case 3:m += -z;break;
case 4:m += -w, poison -= n;break;
}
if(m <= 0) flag = 1;
}
}
if(flag) puts("bye~Rabbit");
else printf("%dg\n", m);
}
return 0;
}
上一篇:a277. 高手寂寞
下一篇:a272. 猥瑣罐頭下樓梯
請問為甚麼要加if(s[i] >= '0' && s[i] <= '9')這一條?