CSU2018 Game Rank

题目大意:其实题目的意思很明了,就是每个等级得到几颗星可以升级,(类似游戏的经验值升级),需要注意的点就是

①16——25级的时候,如果连续胜利三次以上就可以得到两颗星;

②如果这一次失败,只有1——19级的时候才会失去一颗星,(等级低的是不会掉星的……莫名感觉到歧视嘤嘤)

③20级并且当它没有星的时候,也不会掉星……(一开始就是忘了这个WA了一次)

题目链接:戳我戳我

#include<iostream>
#include<cstdio>
#include<string>

using namespace std;

int main(void)
{
    int ranks;
    int current;
    string str;
    string res="";
    while(cin>>str)
    {
        ranks=25;
        current=0;
        int tol=0;
        int len=str.size();
        for(int i=0;i<len;i++)
        {
            if(str[i]=='W')
            {
                tol++;//这个是用来统计连续次数的
                if(ranks>=6&&ranks<=25&&tol>=3)
                    current+=2;
                else
                    current++;
                if(ranks>=21&&ranks<=25)
                {
                    if(current==3)
                    {
                        ranks--;
                        current=1;
                    }
                    else if(current==4)
                    {
                        ranks--;
                        current=2;
                    }
                }
                else if(ranks>=16&&ranks<=20)
                {
                    if(current==4)
                    {
                        ranks--;
                        current=1;
                    }
                    else if(current==5)
                    {
                        ranks--;
                        current=2;
                    }
                }
                else if(ranks>=11&&ranks<=15)
                {
                    if(current==5)
                    {
                        ranks--;
                        current=1;
                    }
                    else if(current==6)
                    {
                        ranks--;
                        current=2;
                    }
                }
                else if(ranks>1&&ranks<=10)
                {
                    if(current==6)
                    {
                        ranks--;
                        current=1;
                    }
                    else if(current==7)
                    {
                        ranks--;
                        current=2;
                    }
                }
                else if(ranks==1)
                {
                    if(current>=6)
                    {
                        res="Legend";
                       // break;
                    }
                }
            }
            else if(str[i]=='L')
            {
                //printf("%d====\n",ranks);
                tol=0;
                if((ranks>=1&&ranks<20)||(ranks==20&&current>0))
                {
                    current--;
                    if(current==-1)
                    {
                        ranks++;
                        if(ranks>=16&&ranks<=20)
                            current=2;
                        else if(ranks>=11&&ranks<=15)
                            current=3;
                        else if(ranks>=1&&ranks<=10)
                            current=4;
                    }
                }
            }
        }
        if(res=="Legend")
            cout<<res;
        else
            printf("%d\n",ranks);
    }
    return 0;
}

呼呼

猜你喜欢

转载自blog.csdn.net/destiny1507/article/details/81174559