玩具谜题

妖精的绣舞 提交于 2019-12-31 03:15:55


传送门:https://www.luogu.org/problemnew/show/P1563

模拟即可(这句话同样不是bb机说的

#include<cstdio>
using namespace std;
int n,m,x,y,last;
struct node
{
    int a;
    char s[10];
}t[100000];
int main()
{
    scanf("%d%d",&n,&m);
    for(int i = 0;i < n;i++)
    {
        scanf("%d%s",&t[i].a,t[i].s);
    }
    for(int i = 1;i <= m;i++)
    {
        scanf("%d%d",&x,&y);
        if(x == 0)//左数
        {
            if(t[last].a == 0)//小人朝里
            {
                while(y != 0)
                {
                    if(last - y >= 0)
                    {
                        last -= y;
                        y = 0;
                    }
                    else
                    {
                        y -= last+1;
                        last = n-1;
                    }
                }
            } 
            else//小人朝外 
            {
                last += y;
                last %= n;
            }
        }
        else//右数 
        {
            if(t[last].a == 0)
            {
                last += y;
                last %= n;
            }
            else
            {
                while(y != 0)
                {
                    if(last - y >= 0)
                    {
                        last -= y;
                        y = 0;
                    }
                    else
                    {
                        y -= last+1;
                        last = n-1;
                    }
                }
            }
        } 
    }
    printf("%s",t[last].s);
    return 0;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!