File tree Expand file tree Collapse file tree 1 file changed +80
-0
lines changed
Expand file tree Collapse file tree 1 file changed +80
-0
lines changed Original file line number Diff line number Diff line change 1+ import java.io.* ;
2+ import java.util.* ;
3+
4+ public class Main {
5+
6+
7+ static int[][] map;
8+ public static void main(String[] args) throws Exception {
9+ BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
10+
11+
12+ int dir = 0;
13+ int[] di = {0, -1, 0, 1};
14+ int[] dj = {-1, 0, 1, 0};
15+
16+
17+ int i = 10000;
18+ int j = 10000;
19+
20+
21+ StringTokenizer st = new StringTokenizer(br.readLine());
22+
23+ int r1 = Integer.parseInt(st.nextToken()) + 5000;
24+ int c1 = Integer.parseInt(st.nextToken()) + 5000;
25+ int r2 = Integer.parseInt(st.nextToken()) + 5000;
26+ int c2 = Integer.parseInt(st.nextToken()) + 5000;
27+
28+ map = new int[r2 - r1 + 1][c2 - c1 + 1];
29+ int cnt = 0;
30+ int limit = 10001;
31+ boolean bool = true;
32+
33+ int max = 0;
34+ for(int a = 10001 * 10001 ; a > 0; a--) {
35+
36+ if(i >= r1 && i <= r2 && j >= c1 && j <= c2) {
37+ max = Math.max(a, max);
38+ map[i - r1][j - c1] = a;
39+ }
40+ cnt++;
41+ int nxti = i + di[dir];
42+ int nxtj = j + dj[dir];
43+
44+ if(cnt == limit) {
45+ cnt = 0;
46+ if(bool) {
47+ bool = false;
48+ limit--;
49+ } else {
50+ bool = true;
51+ }
52+ dir = (dir + 1) % 4;
53+ i += di[dir];
54+ j += dj[dir];
55+ continue;
56+ }
57+
58+ i = nxti;
59+ j = nxtj;
60+ }
61+
62+ StringBuilder sb = new StringBuilder();
63+
64+ int ans = 0;
65+ while(max > 0) {
66+ ans++;
67+ max /= 10;
68+ }
69+
70+ for(int a = 0; a < map.length; a++) {
71+ for(int b = 0; b < map[0].length; b++) {
72+ sb.append(String.format("%" + ans + "d", map[a][b])).append(" ");
73+ }
74+ sb.append("\n");
75+ }
76+
77+ System.out.println(sb);
78+ }
79+
80+ }
You can’t perform that action at this time.
0 commit comments