洛谷 P1563 玩具谜题
基础模拟
位置运算 可以模掉无效值
注意细节即可
#include <iostream>
using namespace std;
const int MAXN = 1e5 + 10;
int pep[MAXN];
string name[MAXN];
int n, m;
int pos(int rit, int f, int mode)
{
f %= n;
if(mode == 1)
{
if(rit - f < 0)
{
f -= rit;
rit = n - f;
}
else
rit = rit - f;
}
else
{
if(rit + f >= n)
{
f -= n - rit;
rit = f;
}
else
{
rit = rit + f;
}
}
return rit;
}
int main()
{
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i = 0; i < n; i++)
{
cin>>pep[i];
cin>>name[i];
}
int flag = 0;
int ta, tb;
while(m--)
{
cin>>ta>>tb;
if(pep[flag] == 0)
{
if(ta == 0)
{
flag = pos(flag, tb, 1);
}
else
{
flag = pos(flag, tb, 0);
}
}
else
{
if(ta == 0)
{
flag = pos(flag, tb, 0);
}
else
{
flag = pos(flag, tb, 1);
}
}
}
cout<<name[flag]<<endl;
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步