import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n=in.nextInt(); //小人人数
int m=in.nextInt(); //指令条数
int[] t=new int[1000001]; //人物转向
String[] str=new String[1000001]; //人物名字
int cur=0,a=0,s=0; //cur为当前小人位置
//输入n个人数据
for(int i=0;i<n;i++) {
t[i]=in.nextInt();
str[i]=in.next();
}
//输入m条指令数据
for(int i=0;i<m;i++) {
//a为指令方向,s为位移量
a=in.nextInt();
s=in.nextInt();
if(t[cur]==a) { // 向外朝左与向内朝右是一致的,反之亦然
//如果方向相同,则向左移
s*=-1;
}
cur=(cur+s+n)%n; //加n余n,防止出现负数,更新位置
}
System.out.println(str[cur]);
}
}
P1563 [NOIP2016 提高组] 玩具谜题
最新推荐文章于 2025-06-29 11:29:49 发布
本文介绍了一个使用Java实现的小人移动模拟程序。程序通过读取用户输入的小人数量、初始方向和一系列移动指令来模拟小人的移动过程。最终输出位于最前位置的小人的名称。
713

被折叠的 条评论
为什么被折叠?



