題目:
小南有一套可愛的玩具小人,它們各有不同的職業。
有一天,這些玩具小人把小南的眼鏡藏了起來。小南發現玩具小人們圍成了乙個 圈,它們有的面朝圈內,有的面朝圈外。如下圖:
這時singer 告訴小南乙個謎題:「眼鏡藏在我左數第 3 個玩具小人的右數第 1 個玩 具小人的左數第 2 個玩具小人那裡。」
小南發現,這個謎題中玩具小人的朝向非常關鍵,因為朝內和朝外的玩具小人的左右方向是相反的:面朝圈內的玩具小人,它的左邊是順時針方向,右邊是逆時針方向;而面向圈外的玩具小人,它的左邊是逆時針方向,右邊是順時針方向。
小南一邊艱難地辨認著玩具小人,一邊數著:
「singer 朝內,左數第 3 個是archer。
「archer 朝外,右數第 1 個是thinker。
「thinker 朝外,左數第 2 個是writer。 「所以眼鏡藏在writer 這裡! 」
雖然成功找回了眼鏡,但小南並沒有放心。如果下次有更多的玩具小人藏他的眼鏡,或是謎題的長度更長,他可能就無法找到眼鏡了。所以小南希望你寫程式幫他解 決類似的謎題。這樣的謎題具體可以描述為:
有 n 個玩具小人圍成一圈,已知它們的職業和朝向。現在第 1 個玩具小人告訴小南乙個包含 m 條指令的謎題,其中第 i 條指令形如「左數/右數第 si 個玩具小人」。你需要輸出依次數完這些指令後,到達的玩具小人的職業。
【輸入格式】
從檔案toy.in 中讀入資料。
輸入的第一行包含兩個正整數 n, m ,表示玩具小人的個數和指令的條數。
接下來 n 行,匈行包含乙個整數和乙個字串,以逆時針為順序給出匈個玩具小人的朝向和職業。其中 0 表示朝向圈內, 1 表示朝向圈外。保證不會出現其他的數。字串長度不超過 10 且僅由小寫字母構成,字串不為空,並且字串兩兩不同。整數和字串之間用乙個空格隔開。
接下來 m 行,其中第 i 行包含兩個整數 ai, si ,表示第 i 條指令。若 ai = 0 ,表示向 左數 si 個人;若 ai = 1 ,表示向右數 si 個人。保證 ai 不會出現其他的數, 1 ≤ si < n 。
【輸出格式】
輸出到檔案toy.out 中。
輸出乙個字串,表示從第乙個讀入的小人開始,依次數完 m 條指令後到達的小人的職業。
分析:
暴力解決。
附上**:
const
maxn=100000;
varn,m:longint;
dir:array [0..maxn] of longint;
s:array [0..maxn] of string;
procedure init;
vari,x,y,now:longint;
begin
readln(n,m);
for i:=1 to n do
begin
readln(dir[i],s[i]);
delete(s[i],1,1);
end;
now:=1;
for i:=1 to m do
begin
readln(x,y);
if x=0 then
begin
if dir[now]=0 then
begin
now:=now-y;
if now<=0 then
inc(now,n);
continue;
end;
if dir[now]=1 then
begin
inc(now,y);
if now>n then
dec(now,n);
continue;
end;
end;
if x=1 then
begin
if dir[now]=0 then
begin
inc(now,y);
if now>n then
dec(now,n);
continue;
end;
if dir[now]=1 then
begin
dec(now,y);
if now<=0 then
inc(now,n);
continue;
end;
end;
end;
writeln(s[now]);
end;
begin
assign(input,'toy.in');reset(input);
assign(output,'toy.out');rewrite(output);
init;
close(input);close(output);
end.
Noip2016day1 玩具迷題toy
題目描述 小南有一套可愛的玩具小人,它們各有不同的職業。有一天,這些玩具小人把小南的眼鏡藏了起來。小南發現玩具小人們圍成了乙個圈,它們有的面朝圈內,有的面朝圈外。如下圖 這時singer告訴小南乙個謎題 眼鏡藏在我左數第3個玩具小人的右數第1個玩具小人的左數第2個玩具小人那裡。小南發現,這個謎題中玩...
noip 2016 day1 T1玩具謎題
小南有一套可愛的玩具小人,它們各有不同的職業。有一天,這些玩具小人把小南的眼鏡藏了起來。小南發現玩具小人們圍成了乙個圈,它們有的面朝圈內,有的面朝圈外。如下圖 這時singer告訴小南乙個謎題 眼鏡藏在我左數第3個玩具小人的右數第1個玩具小人的左數第2個玩具小人那裡。小南發現,這個謎題中玩具小人的朝...
Noip2016day1 天天愛跑步running
題目描述 小c同學認為跑步非常有趣,於是決定製作一款叫做 天天愛跑步 的遊戲。天天愛跑步 是乙個養成類遊戲,需要玩家每天按時上線,完成打卡任務。這個遊戲的地圖可以看作一一棵包含 個結點和 條邊的樹,每條邊連線兩個結點,且任意兩個結點存在一條路徑互相可達。樹上結點編號為從到的連續正整數。現在有個玩家,...