#64-【模拟】屠城(zly#3)
Description
當阿爾薩斯到達斯坦索姆的同時,光明使者烏瑟爾也及時趕來。但這時眾人駭然發現一切都已經太晚了——被瘟疫感染的谷物已經發放到市民手中!
這些無辜的市民必將會感染瘟疫而成為天災軍團的部隊。于是阿爾薩斯命令烏瑟爾和白銀之手騎士團屠殺市民。當烏瑟爾拒絕執行這個命令時,阿爾薩斯竟然宣判德高望重的光明使者叛國。心灰意冷的烏瑟爾和他麾下的圣騎士憤然離城。而吉安娜也極其失望地離開。在最絕望無助的時候,沒有人愿意支持年輕王子的抉擇,留給他的只剩下無盡的痛苦。盡管眾叛親離,阿爾薩斯還是將他的計劃付諸實施。他命令士兵將感染瘟疫的無辜市民屠戮殆盡,并把城內所有的建筑燒得一干二凈!但是同時,恐懼魔王梅爾甘尼斯也正在將市民們轉化為不死族。
給出斯坦索姆的地圖和阿爾薩斯與梅爾甘尼斯的位置,每分鐘阿爾薩斯和梅爾甘尼斯會在部隊所在的地方屠殺市民,當房子燒毀后,阿爾薩斯會派他的軍隊向4個房屋未燒毀的方向(上下左右)移動。阿爾薩斯想知道是他還是梅爾甘尼斯殺的比較快,于是要求你這位御用編程師將k分鐘后的情況給他。注意:如果阿爾薩斯和梅爾甘尼斯相遇,則阿爾薩斯會擊退梅爾甘尼斯再燒毀房屋。
?
Input
輸入文件名為massacre.in。
輸入的第一行包含兩個數n、m和k,表示城市的長、寬和阿爾薩斯想知道情況的時間。
接下來n行,每行m個字符(中間無空格),‘A’表示阿爾薩斯,‘M’表示梅爾甘尼斯,‘#’表示墻,‘.’表示房子。
?
Output
輸出文件名為massacre.out。
輸出k分鐘后的情況,被阿爾薩斯消滅的房子用‘a’表示,梅爾甘尼斯的用‘m’表示。?
?
Sample Input
5 5 4 A.... ..... ..... ..... ....MSample Output
Aaaaa aaaam aaamm aammm ammmMHINT
【數據說明】
對于100%的數據,1<=n,m<=500,k的范圍保證有解(反正開int就夠了)。
一個很久以前AC的題
當時不知道什么叫隊列,直接模擬!
#include <iostream>#define SIZE 1000using namespace std;char c[SIZE][SIZE];int main() {int n, m, t, i, j;cin >> n >> m >> t;for (i = 0; i < n; i++){for (j = 0; j < m; j++){cin >> c[i][j];}}while (t--){for (i = 0; i < n; i++) // 大模擬{for (j = 0; j < m; j++){if ((c[i][j] == 'A') || (c[i][j] == 'a')){if ((i > 0) && (c[i-1][j] == '.')){c[i-1][j] = '&'; // 反正就這樣處理(很暴力)}if ((i < n - 1) && (c[i+1][j] == '.')){c[i+1][j] = '&';}if ((j > 0) && (c[i][j-1] == '.')){c[i][j-1] = '&';}if ((j < m - 1) && (c[i][j+1] == '.')){c[i][j+1] = '&';}}}}for (i = 0; i < n; i++){for (j = 0; j < m; j++){if ((c[i][j] == 'M') || (c[i][j] == 'm')){if ((i > 0) && (c[i-1][j] == '.')){c[i-1][j] = '*';}if ((i < n - 1) && (c[i+1][j] == '.')){c[i+1][j] = '*';}if ((j > 0) && (c[i][j-1] == '.')){c[i][j-1] = '*';}if ((j < m - 1) && (c[i][j+1] == '.')){c[i][j+1] = '*';}}}}for (int i = 0; i < n; i++) // 為了防止a.......一步變成aaaaaaaa......{for (int j = 0; j < m; j++){if (c[i][j] == '&'){c[i][j] = 'a';}else if (c[i][j] == '*'){c[i][j] = 'm';}}}}for (i = 0; i < n; i++){for (j = 0; j < m; j++){cout << c[i][j];}cout << endl;}return 0; }?
總結
以上是生活随笔為你收集整理的#64-【模拟】屠城(zly#3)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python自然语言处理第三章:处理原始
- 下一篇: PE装错盘,装到移动硬盘的资料恢复办法