範例程式碼 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;
}