pastebin

Paste Search Dynamic
Recent pastes
dfs
  1. import java.util.*;
  2. import java.io.*;
  3. public class Main
  4. {
  5.         static int[][] max;
  6.         static int[][] min;
  7.         static int n;
  8.         static int[][] map;
  9.         static int[] dx = {0,1};
  10.         static int[] dy = {1,0};
  11.        
  12.         public static void main (string[] args) throws ioexception
  13.         {
  14.                 bufferedreader br = new bufferedreader(new inputstreamreader(system.in));
  15.                 n = integer.parseInt(br.readLine());
  16.                
  17.                 max = new int[n][n];
  18.                 min = new int[n][n];
  19.                 map = new int[n][n];
  20.                
  21.                 for(int i = 0 ; i < n ; i++)
  22.                 {
  23.                         stringtokenizer st = new stringtokenizer(br.readLine());
  24.                         for(int j = 0 ; j < n ; j++)
  25.                         {
  26.                                 string str = st.nextToken();
  27.                                 if(str.equals("+"))
  28.                                 {
  29.                                         map[i][j] = 6;
  30.                                 }
  31.                                 else if(str.equals("-"))
  32.                                 {
  33.                                         map[i][j] = 7;
  34.                                 }
  35.                                 else if(str.equals("*"))
  36.                                 {
  37.                                         map[i][j] = 8;
  38.                                 }
  39.                                 else
  40.                                 {
  41.                                         int tmp = integer.parseInt(str);
  42.                                         map[i][j] = tmp;
  43.                                         max[i][j] = tmp;
  44.                                         min[i][j] = tmp;
  45.                                 }
  46.                         }
  47.                 }
  48.                
  49.                 for(int i = 0 ; i < n ; i++)
  50.                 {
  51.                         for(int j = 0 ; j < n ; j++)
  52.                         {
  53.                                 dfs(i,j,i,j,-1);
  54.                         }
  55.                 }
  56.                
  57.                 for(int i = 0 ; i < n ; i++)
  58.                 {
  59.                         for(int j = 0 ; j < n ; j++)
  60.                         {
  61.                                 system.out.print(max[i][j]+" ");
  62.                         }
  63.                         system.out.println();
  64.                 }
  65.                 system.out.println("---------------------------------------------");
  66.                 for(int i = 0 ; i < n ; i++)
  67.                 {
  68.                         for(int j = 0 ; j < n ; j++)
  69.                         {
  70.                                 system.out.print(min[i][j]+" ");
  71.                         }
  72.                         system.out.println();
  73.                 }
  74.                
  75.         }
  76.         public static void dfs(int px , int py , int x , int y , int cmd)
  77.         {
  78.                 for(int i = 0 ; i < 2 ; i++)
  79.                 {
  80.                         int nx = x + dx[i];
  81.                         int ny = y + dy[i];
  82.                        
  83.                         if(nx >= 0 && ny >= 0 && nx < n && ny < n)
  84.                         {
  85.                                 if(map[nx][ny] >= 0 && map[nx][ny] <= 5)
  86.                                 {
  87.                                         if(cmd == 6)
  88.                                         {
  89.                                                 max[nx][ny] = math.max(max[nx][ny] , map[px][py] + map[nx][ny]);
  90.                                                 min[nx][ny] = math.min(max[nx][ny] , map[px][py] + map[nx][ny]);
  91.                                         }
  92.                                         else if(cmd == 7)
  93.                                         {
  94.                                                 max[nx][ny] = math.max(max[nx][ny] , map[px][py] - map[nx][ny]);
  95.                                                 min[nx][ny] = math.min(max[nx][ny] , map[px][py] - map[nx][ny]);
  96.                                         }
  97.                                         else
  98.                                         {
  99.                                                 max[nx][ny] = math.max(max[nx][ny] , map[px][py] * map[nx][ny]);
  100.                                                 min[nx][ny] = math.min(max[nx][ny] , map[px][py] * map[nx][ny]);
  101.                                         }
  102.                                        
  103.                                         dfs(nx,ny,nx,ny,-1);
  104.                                 }
  105.                                 else
  106.                                 {
  107.                                         dfs(px,py,nx,ny,map[nx][ny]);
  108.                                 }
  109.                         }
  110.                 }
  111.         }
  112.  
  113. }
Parsed in 0.097 seconds