Advertisement
juanjo12x

UVA_12187_Brothers

Aug 17th, 2014
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.01 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 <bitset>
  9. #include <queue>
  10. #include <list>
  11. #include <vector>
  12. #include <map>
  13. #include <set>
  14. #include <iterator>
  15. #include <sstream>
  16. #include <stdlib.h>
  17. #include <cmath>
  18. #define FOR(i,A) for(typeof (A).begin() i = (A).begin() ; i != (A).end() ; i++)
  19. #define debug( x ) cout << #x << " = " << x << endl
  20. #define clr(v,x) memset( v, x , sizeof v )
  21. #define all(x) (x).begin() , (x).end()
  22. #define rall(x) (x).rbegin() , (x).rend()
  23. #define TAM 110
  24.  
  25. using namespace std;
  26.  
  27. typedef pair<int,int> ii ;
  28. typedef long long ll ;
  29. typedef long double ld ;
  30. typedef pair<int,ii> pii ;
  31. int n,r,c,k;int arr[101][101];
  32. bool es_enemigo(int org,int cnt){
  33.   if((org+1)==cnt ) return true;
  34.   else if(org==n-1 && cnt==0) return true;
  35.   else return false;
  36.  
  37. }
  38. void batallar(){
  39.  int arr1[101][101];
  40.   for(int i=0;i<r;i++){
  41.     for(int j=0;j<c;j++){
  42.         arr1[i][j]=arr[i][j];
  43.     }
  44.   }
  45.   for(int i=0;i<r;i++){
  46.     for(int j=0;j<c;j++){
  47.         if(i-1>=0){
  48.             if(es_enemigo(arr[i][j],arr[i-1][j])){
  49.                 arr1[i-1][j]=arr[i][j];
  50.             }
  51.         }
  52.         if(j-1>=0){
  53.             if(es_enemigo(arr[i][j],arr[i][j-1])){
  54.                 arr1[i][j-1]=arr[i][j];
  55.             }
  56.         }
  57.         if(i+1<r){
  58.             if(es_enemigo(arr[i][j],arr[i+1][j])){
  59.                 arr1[i+1][j]=arr[i][j];
  60.             }
  61.         }
  62.         if(j+1<c){
  63.            if(es_enemigo(arr[i][j],arr[i][j+1])){
  64.                 arr1[i][j+1]=arr[i][j];
  65.             }
  66.         }  
  67.     }
  68.   }
  69.   for(int i=0;i<r;i++){
  70.     for(int j=0;j<c;j++){
  71.         arr[i][j]=arr1[i][j];
  72.     }
  73.   }
  74. }
  75.  
  76. int main() {
  77.     while(scanf("%d %d %d %d",&n,&r,&c,&k)){
  78.         if(n==0 && r==0 && c==0 && k==0) break;
  79.         //memset(arr,0,sizeof(arr));
  80.         for(int i=0;i<r;i++){
  81.             for(int j=0;j<c;j++){
  82.                 scanf("%d",&arr[i][j]);
  83.             }
  84.         }
  85.         for(int i=0;i<k;i++){
  86.             batallar();
  87.         }
  88.         for(int i=0;i<r;i++){
  89.             for(int j=0;j<c;j++){
  90.                 if(j!=c-1)printf("%d ",arr[i][j]);
  91.                 else printf("%d\n",arr[i][j]);
  92.             }
  93.         }
  94.        
  95.     }
  96.     return 0;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement