#1715. 【POJ Challenge】翻版玛丽
【POJ Challenge】翻版玛丽
Background
Special for beginners, ^_^
Description
lqp18_31和1tthinking虽然是两个性格完全不同的人, 但是他们都喜欢玩 'Super Mario Bros'.
一天lqp18_31和1tthinking正玩得高兴,突然发现他们的Mac坏掉了。于是他们求助ftiasch,想借他的电脑。但是由于ftiasch使用的是Ubuntu,没有super mario bros这个游戏,ftiasch打算写一个mario给两个可怜的小朋友玩。
不过写着写着,ftiasch就觉得不好玩了,跑去找她的姐妹们玩了。你能不能帮助ftiasch写这个游戏?
Format
Input
第一行两个整数 R and C , 表示游戏地图的大小 (1 ≤ R , C ≤ 300)。
第二行两个整数 x~mario~ and y~mario~ , t表示small mario所在的坐标 (0 ≤ x~mario~ < R , 0 ≤ y~mario~ < C ).
第三行两个整数 x~mush~ and y~mush~ , 表示唯一一个蘑菇的坐标 (如果 x~mush~ or y~mush~ 等于 -1, 表示不存在)。
第四行四个整数 x~tube1~ , y~tube1~ , x~tube2~ , y~tube2~ , 表示两个水管的坐标。 (if x~tube1~ or y~tube1~ or x~tube2~ or y~tube2~ 等于 -1, 表示不存在).
第五行一个整数 n , 表示block的数量,然后是 n 对整数, 表示block[i]的坐标。
第六行一个整数 m , 表示coin的数量,然后是 m 对整数, 表示coin[i]的坐标。
第七行一个字符串,表示动作序列。
下面给出所有物体的像素图形:
| Small mario |
********
************
####....#.
#..###.....##....
###.......######
...........
##*#######
####*******######
...#***.****.*###....
....**********##.....
....**** *****....
#### ####
###### ######
|
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Big mario |
********
**************
####....#.
#..##.....#.....
#..###.....##....
###.......######
...........
##*######
####*#####*#####
######*******#######
...#***.****.*###....
....**********##.....
...**************....
**** ****
#### ####
###### ######
| | Mushroom |
########
##.******.##
##...****...##
#............#
#..########..#
###..#..#..###
#..#..#..#
#........#
########
|
| Tube |
####################
#------------------#
#------------------#
####################
#----------#
#----------#
#----------#
#----------#
############
|
| Coin |
###
#...#
#.#.#
#.#.#
#...#
###
|
| Block |
##############
#...#......#.#
##############
#..#....#....#
##############
#.....#......#
##############
#.#..#....#..#
##############
|
保证输入不会重叠,且mario一开始脚下一定有砖块。 重叠指有非空格重叠。
下面是重叠:
##############
#...#......#.#
##############
#..#....#....#
##############
#.....#......#
##############
#.#..#....#..#
##############**
####....#.
#..###.....##....
###.......######
...........
##*#######
####*******######
...#***.****.*###....
....**********##.....
....**** *****....
#### ####
###### ######
下面不是重叠:
##############
#...#......#.#
##############
#..#....#....#
##############
#.....#......#
******** ##############
************ #.#..#....#..#
####....#. ##############
#..###.....##....
###.......######
...........
##*#######
####*******######
...#***.****.*###....
....**********##.....
....**** *****....
#### ####
###### ######
字符串包含 'D','L','R','P'.
R:如果向右不会导致mario和某个block、tube重叠,mario向右。
L:如果向左不会导致mario和某个block、tube重叠,mario向左。
D:如果mario脚下是某个tube,mario到达另一个tube的正上方。
Mario 在水管上方:
********
************
####....#.
#..###.....##....
###.......######
...........
##*#######
####*******######
...#***.****.*###....
....**********##.....
....**** *****....
#### ####
###### ######
####################
#------------------#
#------------------#
####################
#----------#
#----------#
#----------#
#----------#
############
水管不在 mario 的脚下:
********
************
####....#.
#..###.....##....
###.......######
...........
##*#######
####*******######
...#***.****.*###....
....**********##.....
....**** *****....
#### ####
###### ######
####################
#------------------#
#------------------#
####################
#----------#
#----------#
#----------#
#----------#
############
当mario和mushroom重叠,mario会变大。且mushroom消失。
当mario和金币重叠,mario会获得100分。且coin消失。
如果mario脚下没有砖块或者水管,它会不断往下掉。
如果当前mario到达了地图的底部,且还是没有block和tube,mario就输了。必须输出:
....#####.......#........#...#..#####.........###...#.....#..#####.......#####.....
...#...........#.#......##..##..#............#...#..#....#...#..........#.....#...
...#..........#..#.....#.#.#.#..#####........#...#..#...#....#####.....#######...
...#..###... #####....#..##..#..#............#...#..#..#.....#........#..#......
...#....#...#....#...#...#...#..#............#...#..#.#......#.......#....#....
....###.#..#.....#..#........#..#####.........###...##.......#####..#......#..
Output
对于每个P,输出当前的地图以及一行得分情况 "Mario : ? points"。P与P之间输出一个空行
Samples
100 150
9 0
-1 -1
0 42 0 90
4 0 0 0 14 0 28 0 76
5 12 28 12 62 12 76 12 90 12 42
RRRRRRRRRRRP
********
************
####....#.
#..###.....##....
###.......###### ### ### ### ###
........... #...# #...# #...# #...#
##*####### #.#.# #.#.# #.#.# #.#.#
####*******###### #.#.# #.#.# #.#.# #.#.#
...#***.****.*###.... #...# #...# #...# #...#
....**********##..... ### ### ### ###
....**** *****....
#### ####
###### ######
############################################################## ##################################
#...#......#.##...#......#.##...#......#.##------------------# #...#......#.##------------------#
###########################################------------------# ###############------------------#
#..#....#....##..#....#....##..#....#....##################### #..#....#....#####################
########################################## #----------# ############## #----------#
#.....#......##.....#......##.....#......# #----------# #.....#......# #----------#
########################################## #----------# ############## #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------# #.#..#....#..# #----------#
########################################## ############ ############## ############
Mario : 100 points
Limitation
1s, 1024KiB for each test case.