洛谷题解 P1563 【玩具谜题】

水题(然鹅我 WA W A 了几次)

题目上有说过,顺时针数和逆时针数看他们面朝的方向和往左往右数有关。所以要判断一下。输入的方向相同就顺着数,不同就逆着数。

  1. 先读入,字符串读入需要注意。
  2. 读入后,记得与小人编号建立关系,小人编号又要与小人方向建立关系
  3. 做这道题之前,记得先手动模拟一遍,找出小人编号与小人方向、位数的关系。

一句话:就是模拟!!

注意!小人的号码是逆时针摆放。一开始我以为是顺时针摆放,样例怎么都过不去。。。

代码

    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党蒟蒻(我)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值