Advertisement
Guest User

Untitled

a guest
May 25th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.lang.reflect.Array;
  7. import java.util.Arrays;
  8. import java.util.Scanner;
  9.  
  10. class Main
  11. {
  12. public static char[][] arr = new char[1001][1001];
  13. public static int[][] vis = new int[1001][1001];
  14. boolean exist;
  15. public static int best, n, m;
  16. public static int nextI, nextJ;
  17. public static void dfs(int i, int j, int d)
  18. {
  19.  
  20. if(i<0 || i>=m || j<0 || j>=n || arr[i][j]!='.') return;
  21. arr[i][j] = 'v';
  22. dfs(i+1, j, d+1);
  23. dfs(i, j+1, d+1);
  24. dfs(i, j-1, d+1);
  25. dfs(i-1, j, d+1);
  26. arr[i][j] = '.';
  27. if(d > best)
  28. {
  29. best = d;
  30. nextI=i;
  31. nextJ=j;
  32.  
  33. }
  34. }
  35.  
  36. public static int find()
  37. {
  38. int maxlen = 0;
  39. if(arr[nextI][nextJ]!='.') return 0;
  40. while(true)
  41. {
  42. best = 0;
  43. dfs(nextI, nextJ, 0);
  44. if(best <= maxlen) break;
  45. else maxlen = best;
  46. }
  47. return maxlen;
  48. }
  49. public static void main (String[] args) throws java.lang.Exception
  50. {
  51. int ile, d=0;
  52.  
  53. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  54.  
  55. ile = Integer.parseInt(br.readLine());
  56. while(d<ile)
  57. {
  58.  
  59. String line = br.readLine();
  60. n = Integer.parseInt(line.split(" ")[0]);
  61. m = Integer.parseInt(line.split(" ")[1]);
  62. //char[][] t = new char[m][n];
  63. String linia ;
  64.  
  65. for(int i = 0; i<m; i++)
  66. {
  67. linia = br.readLine();
  68. for(int j = 0; j<n; j++)
  69. {
  70. arr[i][j] = linia.charAt(j);
  71.  
  72. }
  73. }
  74.  
  75.  
  76. nextI = nextJ = 0;
  77. for(int i=0; i<m; i++)
  78. for(int j=0; j<n; j++)
  79. if(arr[i][j]=='.')
  80. {
  81. nextI = i;
  82. nextJ = j;
  83. break;
  84. }
  85. System.out.println("Maximum rope length is " + find()+".");
  86. d++;
  87. }
  88.  
  89.  
  90. }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement