UVa 10443 Rock, Scissors, Paper
1
#include <stdio.h>
2 #include
<stdlib.h>
3 #include
<iostream>
4 #include
<algorithm>
5 #include
<string.h>
6 #include
<map>
7 using
namespace std;
8 char arr[105][105];
9 int w,l,n;
10 char check(int i,int j)
11 {
12 if(arr[i][j]=='R')
13 {
14 if(i>0 && arr[i-1][j]=='P') return 'P';
15 else if(j>0 && arr[i][j-1]=='P') return 'P';
16 else if(i<w-1 && arr[i+1][j]=='P') return 'P';
17 else if(j<l-1 && arr[i][j+1]=='P') return 'P';
18 else return 'R';
19 }
20 else if(arr[i][j]=='S')
21 {
22 if(i>0 && arr[i-1][j]=='R') return 'R';
23 else if(j>0 && arr[i][j-1]=='R') return 'R';
24 else if(i<w-1 && arr[i+1][j]=='R') return 'R';
25 else if(j<l-1 && arr[i][j+1]=='R') return 'R';
26 else return 'S';
27
28 }
29 else if(arr[i][j]=='P')
30 {
31 if(i>0 && arr[i-1][j]=='S') return 'S';
32 else if(j>0 && arr[i][j-1]=='S') return 'S';
33 else if(i<w-1 && arr[i+1][j]=='S') return 'S';
34 else if(j<l-1 && arr[i][j+1]=='S') return 'S';
35 else return 'P';
36
37 }
38 }
39 int main()
40 {
41 int cas;
42 cin>>cas;
43 while(cas--)
44 {
45 char ans[105][105];
46 cin>>w>>l>>n;
47 for(int i=0; i<w; i++)
48 {
49 for(int j=0; j<l; j++)
50 {
51
cin>>arr[i][j];
52 }
53 }
54 for(int i=0; i<n; i++)
55 {
56 for(int j=0; j<w; j++)
57 {
58
for(int k=0; k<l; k++)
59
{
60
char tmp;
61
if(tmp=check(j,k))
62
{
63 ans[j][k]=tmp;
64
}
65
}
66 }
67
memcpy(arr,ans,sizeof(ans));
68 }
69 for(int i=0; i<w; i++)
70 {
71 for(int j=0; j<l; j++)
72 {
73
cout<<arr[i][j];
74 }
75 cout<<endl;
76 }
77 if(cas) cout<<endl;
78 }
79 return 0;
80 }
留言
張貼留言