玩具谜题


传送门: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;
}

 

posted @ 2018-11-01 13:46  我的露娜不会飘  阅读(142)  评论(0编辑  收藏  举报