範例程式碼 uva10443
//uva10443
#include <iostream>
#include <vector>
using namespace std;
int main() {
int t, r, c, n, today, tomorrow;
char win;
vector< vector< vector<char> > > b( 2, vector<vector<char>>(102, vector<char>(102)) );
cin >> t;
while (t > 0) {
--t;
cin >> r >> c >> n;
for (int i = 0; i < r + 2; ++i)
for (int j = 0; j < c + 2; ++j)
b[0][i][j] = b[1][i][j] = 'X';
for (int i = 1; i <= r; ++i)
for (int j = 1; j <= c; ++j)
cin >> b[0][i][j];
for (int d = 0; d < n; ++d) {
today = d % 2;
tomorrow = (d + 1) % 2;
for (int i = 1; i <= r; ++i) {
for (int j = 1; j <= c; ++j) {
if (b[today][i][j] == 'R')
win = 'P';
else if (b[today][i][j] == 'P')
win = 'S';
else
win = 'R';
if (b[today][i + 1][j] == win || b[today][i][j + 1] == win || b[today][i - 1][j] == win || b[today][i][j - 1] == win)
b[tomorrow][i][j] = win;
else
b[tomorrow][i][j] = b[today][i][j];
}
}
}
for (int i = 1; i <= r; ++i) {
for (int j = 1; j <= c; ++j)
cout << b[tomorrow][i][j];
cout << "\n";
}
if (t != 0)
cout << endl;
}
return 0;
}