題目描述
石頭剪刀布是常見的猜拳游戲:石頭勝剪刀,剪刀勝布,布勝石頭。如果兩個人出拳一樣,則不分勝負(fù)。在《生活大爆炸》第二季第8 集中出現(xiàn)了一種石頭剪刀布的升級版游戲。
升級版游戲在傳統(tǒng)的石頭剪刀布游戲的基礎(chǔ)上,增加了兩個新手勢:
斯波克:《星際迷航》主角之一。
蜥蜴人:《星際迷航》中的反面角色。
這五種手勢的勝負(fù)關(guān)系如表一所示,表中列出的是甲對乙的游戲結(jié)果。

現(xiàn)在,小A 和小B 嘗試玩這種升級版的猜拳游戲。已知他們的出拳都是有周期性規(guī)律的,但周期長度不一定相等。例如:如果小 A以“石頭 - 布- 石頭- 剪刀- 蜥蜴人- 斯波克”長度為6 的周期出拳,那么他的出拳序列就是“石頭- 布- 石頭- 剪刀- 蜥蜴人- 斯波克- 石頭- 布- 石頭- 剪刀- 蜥蜴人- 斯波克- ……”,而如果小B 以“剪刀- 石頭- 布- 斯波克- 蜥蜴人”長度為5 的周期出拳,那么他出拳的序列就是“剪刀- 石頭- 布- 斯波克- 蜥蜴人- 剪刀- 石頭- 布-斯波克- 蜥蜴人- ……”
已知小A 和小B 一共進(jìn)行N 次猜拳。每一次贏的人得1 分,輸?shù)牡? 分;平局兩人都得0 分。現(xiàn)請你統(tǒng)計N 次猜拳結(jié)束之后兩人的得分。
輸入輸出格式
輸入格式: 輸入文件名為rps.in。
第一行包含三個整數(shù):N ,NA,NB,分別表示共進(jìn)行 N 次猜拳、小 A 出拳的周期長度,小B 出拳的周期長度。數(shù)與數(shù)之間以一個空格分隔。
第二行包含NA個整數(shù),表示小 A 出拳的規(guī)律,第三行包含NB個整數(shù),表示小 B 出拳的規(guī)律。其中,0 表示“剪刀”,1 表示“石頭”,2 表示“布”,3 表示“蜥蜴人”, 4 表示“斯波克”。數(shù)與數(shù)之間以一個空格分隔。
輸出格式: 輸出文件名為rps.out 。
輸出一行, 包含兩個整數(shù),以一個空格分隔,分別表示小A 、小B 的得分。
輸入輸出樣例
輸入樣例#1: 10 5 6 0 1 2 3 4 0 3 4 2 1 0 輸出樣例#1: 6 2 輸入樣例#2: 9 5 5 0 1 2 3 4 1 0 3 2 4 輸出樣例#2: 4 4 說明
對于100%的數(shù)據(jù),0 < N ≤ 200 ,0 < NA ≤ 200 , 0 < NB ≤ 200 。
分析:純模擬,n才200。
代碼:
const d:array [0..4,0..4] of longint=((0,-1,1,1,-1), (1,0,-1,1,-1), (-1,1,0,-1,1), (-1,-1,1,0,1), (1,1,-1,-1,0));var a,b:array [0..201] of longint; i,x,y,n,na,nb,e,f:longint;begin read(n,na,nb); for i:=0 to na-1 do read(a[i]); for i:=0 to nb-1 do read(b[i]); for i:=0 to n-1 do begin e:=a[i mod na]; f:=b[i mod nb]; case d[e,f] of 1:x:=x+1; -1:y:=y+1; end; end; writeln(x,' ',y);end.新聞熱點(diǎn)
疑難解答