GYM 101550 G.Game Rank(模拟)
2018-02-19 16:14
549 查看
Description
一个游戏级别分2525级和额外等级LegendLegend,其中2525级最低级,11级次高级,LegendLegend最高级,每个级别对应一个星星数量,对应表如下:
• Rank 25-21: 2 stars
• Rank 20-16: 3 stars
• Rank 15-11: 4 stars
• Rank 10-1: 5 stars
每赢一局得一颗星星,如果级别在66~2525级且当前三连胜及以上则额外奖励一颗星星,如果得到当前级别所有星星且又赢一局则可以升级,如果级别在11~2020级,输一局掉一颗星星,如果其级别超过2020且没有星星则降级, 其星星数量为降级后总星星数量减一,但是如果级别低于2020级则无影响,如果级别达到LegendLegend则输赢不影响级别,现在给出一个人输赢情况,问其最后的级别,初始为2525级00颗星星
Input
给出一个只由WW和LL组成的字符串表示输赢情况,WW表示赢,LL表示输,字符串长度不超过104104
Output
输出最后的级别
Sample Input
WW
Sample Output
25
Solution
简单题,维护当前级别,星星数量和连胜局数,按规则模拟即可
Code
一个游戏级别分2525级和额外等级LegendLegend,其中2525级最低级,11级次高级,LegendLegend最高级,每个级别对应一个星星数量,对应表如下:
• Rank 25-21: 2 stars
• Rank 20-16: 3 stars
• Rank 15-11: 4 stars
• Rank 10-1: 5 stars
每赢一局得一颗星星,如果级别在66~2525级且当前三连胜及以上则额外奖励一颗星星,如果得到当前级别所有星星且又赢一局则可以升级,如果级别在11~2020级,输一局掉一颗星星,如果其级别超过2020且没有星星则降级, 其星星数量为降级后总星星数量减一,但是如果级别低于2020级则无影响,如果级别达到LegendLegend则输赢不影响级别,现在给出一个人输赢情况,问其最后的级别,初始为2525级00颗星星
Input
给出一个只由WW和LL组成的字符串表示输赢情况,WW表示赢,LL表示输,字符串长度不超过104104
Output
输出最后的级别
Sample Input
WW
Sample Output
25
Solution
简单题,维护当前级别,星星数量和连胜局数,按规则模拟即可
Code
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #include<queue> #include<map> #include<set> #include<ctime> using namespace std; typedef long long ll; typedef pair<int,int>P; const int INF=0x3f3f3f3f,maxn=100005; char s[maxn]; int Rank,Star; void up(int v) { Star+=v; if(Rank>=21&&Rank<=25&&Star>2)Rank--,Star-=2; else if(Rank>=16&&Rank<=20&&Star>3)Rank--,Star-=3; else if(Rank>=11&&Rank<=15&&Star>4)Rank--,Star-=4; else if(Rank>=1&&Rank<=10&&Star>5)Rank--,Star-=5; } void down() { if(Rank>20)return ; if(Star) { Star--; return ; } if(Rank<20) { Rank++; if(Rank>=16&&Rank<=20)Star=2; else if(Rank>=11&&Rank<=15)Star=3; else if(Rank>=1&&Rank<=10)Star=4; } } int main() { while(~scanf("%s",s)) { int n=strlen(s); Rank=25,Star=0; int num=0; for(int i=0;i<n;i++) { if(Rank==0)break; if(s[i]=='L')down(),num=0; else if(s[i]=='W') { num++; if(Rank>=6&&num>=3)up(2); else up(1); } //printf("rank=%d star=%d\n",rank,star); } if(Rank)printf("%d\n",Rank); else printf("Legend\n"); } return 0; }
相关文章推荐
- Gym 100935B Weird Cryptography (模拟)
- Gym - 101572G -(set&细节)|(模拟&理解)|树状数组&好题-Galactic Collegiate Programming Contest
- Gym 100952I&&2015 HIAST Collegiate Programming Contest I. Mancala【模拟】
- 【模拟】ECNA 2015 I What's on the Grille? (Codeforces GYM 100825)
- Gym - 101653T Runes [模拟]
- Gym - 101190A Abbreviation(string字符串 模拟)
- Gym - 101190A Abbreviation(模拟)
- Gym 101653T Runes (模拟)
- Gym 100952C&&2015 HIAST Collegiate Programming Contest C. Palindrome Again !!【字符串,模拟】
- Gym - 100637A Nano alarm-clocks 模拟
- 【模拟】ECNA 2015 I What's on the Grille? (Codeforces GYM 100825)
- GYM 101550 A.Artwork(并查集)
- GYM Amman 17 J. Spilt the String 模拟,枚举
- gym 101190A Abbreviation (模拟)
- codeforces Gym 100338F Spam Filter 垃圾邮件过滤器(模拟,实现)
- Gym 101190H Hard Refactoring (模拟坑题)
- GYM 101550 D.Daydreaming Stockbroker(贪心)
- Gym 100959L_String Modification(模拟)
- 【模拟】NEERC15 J Jump (Codeforces GYM 100851)
- Gym - 101492H. Programming a robot(模拟)