问题 3750 --尔虞我诈

3750: 尔虞我诈

题目描述

  曾经有一个颇为流行的小游戏,名称已无法考证,我们姑且把它叫做“尔虞我诈”。游戏规则是这样的:有N人参加比赛,每两人进行一场游戏(因此共进行N*(N-1)/2场游戏),每场游戏分十轮,在每轮中,两人同时说出“TRADE”和“CHEAT”其中之一,如果两人都“TRADE”,各得一分,如果两人都“CHEAT”,各扣一分,如果一个“TRADE”,一个“CHEAT”,则CHEAT的那个人得2分,TRADE的扣2分。每人得的N-1场分数的总和为该人的最后得分,看谁的得分最高。当然,在比赛之前每人的得分为0。如何才能取胜呢?人们设计了很多战术,可以用以下的“战术语言”来描述:
<program> ::= <statement>.
<statement> ::= <command> | <ifstat>
<ifstat> ::= IF <condition> THEN <statement> ELSE <statement>
<condition> ::= <cond> | <cond> <op> <condition>
<op> ::= AND | OR
<cond> ::= <memory> {= | #} {<command> | NULL}
<memory> ::= {MY | YOUR} LAST {1 | 2}
<command> ::= TRADE | CHEAT
#的意思是“不等于”,NULL的意思是空,不存在。
空格可以在任何地方出现。
例如:
CHEAT.

IFYOURLAST2=NULLTHENTRADEELSEIFYOURLAST1=TRADETHENTRADEELSECHEAT.
是两个合法的战术语言程序。
编程模拟给定程序间的游戏情况。

输入

第一行,N(<=10),以下 N 行,每一行为一个程序(长度<=255)

输出

共 1 行,有 N 个整数,分别为各程序的最后得分。

样例输入输出

输入#1 复制
3
CHEAT.
IF MY LAST1 = CHEAT THEN TRADE ELSE CHEAT.
IFYOURLAST2=NULLTHENTRADEELSEIFYOURLAST1=TRADETHENTRADEELSECHEAT.
输出#1 复制
1 -12 -13

提示

序号 标题 作者 发表时间 费用 订购数 操作