洛谷普及试炼场P1563 玩具谜题

洛谷普及试炼场P1563 玩具谜题







题解:
题目很简单,需要模拟一下寻找的过程。由于各职业朝向分内外,题目要求分左右,故简化为顺时针操作与逆时针操作即可

#include<bits/stdc++.h>
using namespace std;
struct
{
    int face;
    string name;
} mmp[1000005];
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=1; i<=n; ++i)
        cin>>mmp[i].face>>mmp[i].name;
    bool reversal;
    int x,y,ans=1;
    while(m--)
    {
        cin>>x>>y;
        if(mmp[ans].face==0&&x==1||mmp[ans].face==1&&x==0)
            reversal=false;
        else
            reversal=true;
        if(!reversal)
        {
            ans+=y;
            if(ans>n)
            {
                ans%=n;
                if(ans==0)
                    ans=n;
            }
        }
        else
        {
            ans-=y;
            while(ans<=0)
                ans+=n;
        }
    }
    cout<<mmp[ans].name;
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BeZer0

打赏一杯奶茶支持一下作者吧~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值