题目
初始段位是黄金,每天的段位变化不会超过一个大段。
如果上了一个大段那么就会记一个 1,如果大的段位没有变化那么就会记一个 0,如果掉了一个大段,那么就记一个 7,但是存在一些特殊情况使得队员记录的数字代表的意义会发生一些改变。
十天后,可以得到一个 10 个数字的序列,试着根据这串序列算出第 10 天是否上了王者。
段位晋级规则为: 黄铜 -> 白银 -> 黄金 -> 白金 -> 钻石 -> 大师 -> 王者 特殊状况: 如果降到黄铜,且下一天仍然没有升段,因为黄铜下面没有其他段位,那么记录信息的队员会在7和0中随机记录一个,7和0都代表当前段位没有发生变化。 如果升到王者,且下一天仍然没有掉段,因为王者之上没有其他段位,那么记录信息的队员会在0和1中随机记录一个,1和0都代表当前段位没有发生变化。
解题思路
使用 表示段位,。初始 ,在第 10 天时, 表示上了王者,否则没上。
C++代码
#include<iostream> using namespace std; int main(){ int level = 3; int k; while(cin >> k){ if(k == 7) --level; else level += k; int t = 9; while(t--){ cin >> k; if(k==7 && level>1) --level; else if(k==1 && level<7) ++level; } if(level==7) cout << "666" << endl; else cout << "777" << endl; level = 3; } return 0; }