水题(然鹅我
WA
W
A
了几次)
题目上有说过,顺时针数和逆时针数看他们面朝的方向和往左往右数有关。所以要判断一下。输入的方向相同就顺着数,不同就逆着数。
- 先读入,字符串读入需要注意。
- 读入后,记得与小人编号建立关系,小人编号又要与小人方向建立关系
- 做这道题之前,记得先手动模拟一遍,找出小人编号与小人方向、位数的关系。
一句话:就是模拟!!
注意!小人的号码是逆时针摆放。一开始我以为是顺时针摆放,样例怎么都过不去。。。
代码
var
n,m,i,j,total,s2,tail:longint; //tail指针,s2是用来存放s1[i]转化后的数字
s:array[1..100000] of string;
s1:string;
a:array[1..2,1..100000] of longint;
begin
readln(n,m);
for i:=1 to n do
begin
readln(s1);
val(s1[1],s2);
a[1,i]:=s2;
for j:=3 to length(s1) do
s[i]:=s[i]+s1[j];
end;
tail:=1;
for i:=1 to m do
begin
readln(a[2,tail],total);
if a[1,tail]<>a[2,tail] then
if tail+total>n then tail:=tail+total-n else inc(tail,total)
else
if tail-total<1 then tail:=tail-total+n else dec(tail,total);
end;
write(s[tail]);
end.
by P党蒟蒻(我)