Advertisement
juanjo12x

UVA_10443_Rock

Aug 13th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.19 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <algorithm>
  4. #include <cstring>
  5. #include <string>
  6. #include <cctype>
  7. #include <stack>
  8. #include <queue>
  9. #include <list>
  10. #include <vector>
  11. #include <map>
  12. #include <set>
  13. #include <sstream>
  14. #include <stdlib.h>
  15. #include <cmath>
  16. #define FOR(i,A) for(typeof (A).begin() i = (A).begin() ; i != (A).end() ; i++)
  17. #define mp make_pair
  18. #define debug( x ) cout << #x << " = " << x << endl
  19. #define clr(v,x) memset( v, x , sizeof v )
  20. #define all(x) (x).begin() , (x).end()
  21. #define rall(x) (x).rbegin() , (x).rend()
  22. #define TAM 110
  23.  
  24. using namespace std;
  25.  
  26. typedef pair<int,int> ii ;
  27. typedef long long ll ;
  28. typedef long double ld ;
  29. typedef pair<int,ii> pii ;
  30. char arr[110][110];
  31.  
  32. void simulate(int r,int c){
  33.   char arr1[110][110];
  34.   for(int i=0;i<r;i++){
  35.     for(int j=0;j<c;j++){
  36.         arr1[i][j]=arr[i][j];
  37.     }
  38.   }
  39.    for(int i=0;i<r;i++){
  40.     for(int j=0;j<c;j++){
  41.         if(arr[i][j]=='R'){
  42.             if(i-1>=0) if(arr[i-1][j]=='P'){arr1[i][j]='P';}
  43.             if(i+1<r) if(arr[i+1][j]=='P'){arr1[i][j]='P';}
  44.             if(j-1>=0) if(arr[i][j-1]=='P'){arr1[i][j]='P';}
  45.             if(j+1<c) if(arr[i][j+1]=='P'){arr1[i][j]='P';}
  46.         }else if(arr[i][j]=='S'){
  47.             if(i-1>=0) if(arr[i-1][j]=='R'){arr1[i][j]='R';}
  48.             if(i+1<r) if(arr[i+1][j]=='R'){arr1[i][j]='R';}
  49.             if(j-1>=0) if(arr[i][j-1]=='R'){arr1[i][j]='R';}
  50.             if(j+1<c) if(arr[i][j+1]=='R'){arr1[i][j]='R';}
  51.         }else if(arr[i][j]=='P'){
  52.             if(i-1>=0) if(arr[i-1][j]=='S'){arr1[i][j]='S';}
  53.             if(i+1<r) if(arr[i+1][j]=='S'){arr1[i][j]='S';}
  54.             if(j-1>=0) if(arr[i][j-1]=='S'){arr1[i][j]='S';}
  55.             if(j+1<c) if(arr[i][j+1]=='S'){arr1[i][j]='S';}
  56.         }
  57.     }
  58.    }
  59.    /*final del dia*/
  60.    for(int i=0;i<r;i++){
  61.     for(int j=0;j<c;j++){
  62.         arr[i][j]=arr1[i][j];
  63.     }
  64.   }
  65. }
  66. int main() {
  67.     int t;
  68.     scanf("%d",&t);int r,c,n;
  69.     while(t--){
  70.         scanf("%d %d %d",&r,&c,&n);
  71.         memset(arr,'0',sizeof(arr));getchar();
  72.         for(int i=0;i<r;i++){
  73.             gets(arr[i]);
  74.         }
  75.         for(int i=0;i<n;i++){
  76.         simulate(r,c);
  77.         }
  78.         for(int i=0;i<r;i++){
  79.             printf("%s\n",arr[i]);
  80.         }
  81.         if(t>0) printf("\n");
  82.     }
  83.     return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement