View difference between Paste ID: h0edP2Cj and ChxDp9nb
SHOW: | | - or go back to the newest paste.
1
//elab-source: NewPavement.java
2
import java.util.Scanner;
3
public class NewPavement {
4
	public static void main(String[]args){
5
		Scanner input=new Scanner(System.in);
6
		int size = input.nextInt();
7
		int matrix[][]=new int [size][size];
8
		for (int i=0;i<size;i++){
9
			for (int j=0;j<size;j++){
10
				int in=input.nextInt();
11
				matrix[i][j]=in;
12
			}
13
		}
14
		int level=0;
15
		int newi=0; int newj=0;
16
		for (int i=0;i<size;i++){
17
			for (int j=0;j<size;j++){
18-
				if (matrix[i][j]==matrix[0][0]||matrix[i][j]==level&&matrix[i][j]>0){
18+
				if (matrix[i][j]==1){
19
					level=matrix[i][j];
20
					newi=i;
21
					newj=i;
22
				}
23
			}
24
		}
25
		
26
		for (int i=newi;i<size;i++){
27
			for (int j=newj;j<size;j++){
28
				if (i==0&&j==0){
29
					if(matrix[i+1][j]==level+1){
30
						level=matrix[i+1][j];
31
						i=i+1;
32
						j=j;
33
					}
34
					if(matrix[i][j+1]==level+1){
35
						level=matrix[i][j+1];
36
						i=i;
37
						j=j+1;
38
					}
39
					
40
				}
41
				if(j==0&&i==size-1){
42
					if(matrix[i-1][j]==level+1){
43
						level=matrix[i-1][j];
44
						i=i-1;
45
						j=j;
46
					}
47
					if(matrix[i][j+1]==level+1){
48
						level=matrix[i][j+1];
49
						i=i;
50
						j=j+1;
51
					}
52
					
53
				}
54
				if(j==0&&i!=0&&i!=size-1){
55
					if (matrix[i-1][j]==level+1){
56
						level=matrix[i-1][j];
57
						i=i-1;
58
						j=j;
59
					}
60
					if (matrix[i+1][j]==level+1){
61
						level=matrix[i+1][j];
62
						i=i+1;
63
						j=j;
64
					}
65
					if (matrix[i][j+1]==level+1){
66
						level=matrix[i][j+1];
67
						i=i;
68
						j=j+1;
69
					}
70
					
71
				}
72
				if(i==0&&j==size-1){
73
					if (matrix[i][j-1]==level+1){
74
						level=matrix[i][j-1];
75
						i=i;
76
						j=j-1;
77
					}
78
					if (matrix[i+1][j]==level+1){
79
						level=matrix[i+1][j];
80
						i=i+1;
81
						j=j;
82
					}
83
					
84
				}
85
				if(i==0&&j!=0&&j!=size-1){
86
					if (matrix[i+1][j]==level+1){
87
						level=matrix[i+1][j];
88
						i=i+1;
89
						j=j;
90
					}
91
					if (matrix[i][j-1]==level+1){
92
						level=matrix[i][j-1];
93
						i=i;
94
						j=j-1;
95
					}
96
					if(matrix[i][j+1]==level+1){
97
						level=matrix[i][j+1];
98
						i=i;
99
						j=j+1;
100
					}
101
					
102
				}
103
				if (i==size-1&&j==size-1){
104
					if(matrix[i][j-1]==level+1){
105
						level=matrix[i][j-1];
106
						i=i;
107
						j=j-1;
108
					}
109
					if(matrix[i-1][j]==level+1){
110
						level=matrix[i-1][j];
111
						i=i-1;
112
						j=j;
113
					}
114
					
115
				}
116
				if(j==size-1&&i!=0&&i!=size-1){
117
					if(matrix[i-1][j]==level+1){
118
						level=matrix[i-1][j];
119
						i=i-1;
120
						j=j;
121
					}
122
					if(matrix[i+1][j]==level+1){
123
						level=matrix[i+1][j];
124
						i=i+1;
125
						j=j;
126
					}
127
					if(matrix[i][j-1]==level+1){
128
						level=matrix[i][j-1];
129
						i=i;
130
						j=j-1;
131
					}
132
					
133
				}
134
				if(i==size-1&&j!=0&&j!=size-1){
135
					if(matrix[i-1][j]==level+1){
136
						level=matrix[i-1][j];
137
						i=i-1;
138
						j=j;
139
					}
140
					if(matrix[i][j-1]==level+1){
141
						level=matrix[i][j-1];
142
						i=i;
143
						j=j-1;
144
					}
145
					if(matrix[i][j+1]==level+1){
146
						level=matrix[i][j+1];
147
						i=i;
148
						j=j+1;
149
					}
150
					
151
				}
152
				if(i!=size-1&&i!=0&&j!=size-1&&j!=0){
153
					if(matrix[i-1][j]==level+1){
154
						level=matrix[i-1][j];
155
						i=i-1;
156
						j=j;
157
					}
158
					if(matrix[i][j-1]==level+1){
159
						level=matrix[i][j-1];
160
						i=i;
161
						j=j-1;
162
					}
163
					if(matrix[i][j+1]==level+1){
164
						level=matrix[i][j+1];
165
						i=i;
166
						j=j+1;
167
					}
168
					if(matrix[i+1][j]==level+1){
169
						level=matrix[i+1][j];
170
						i=i+1;
171
						j=j;
172
					}
173
					
174
				}
175
				
176
			}
177
		}
178
		
179
		System.out.print(level);
180
	}
181
}