結果
問題 | No.401 数字の渦巻き |
ユーザー |
![]() |
提出日時 | 2016-11-27 17:41:01 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 200 ms / 2,000 ms |
コード長 | 2,459 bytes |
コンパイル時間 | 3,059 ms |
コンパイル使用メモリ | 77,992 KB |
実行使用メモリ | 45,792 KB |
最終ジャッジ日時 | 2024-11-27 12:15:07 |
合計ジャッジ時間 | 7,700 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
ソースコード
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.StringTokenizer;public class Main {static BufferedReader in;static PrintWriter out;static StringTokenizer tok;void solve() throws IOException {n = ni();boolean[][] used = new boolean[n][n];int[][] ans = new int[n][n];int x = 0;int y = 0;int mode = 0;for (int i = 1; i <= n * n; i++) {ans[x][y] = i;used[x][y] = true;if (!isin(x + dx[mode], y + dy[mode]) || used[x + dx[mode]][y + dy[mode]]) {mode = (mode + 1) % 4;}x += dx[mode];y += dy[mode];}for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {if (j > 0) out.print(" ");out.print(String.format("%03d", ans[i][j]));}out.println();}}int n;int[] dy = {1, 0, -1, 0};int[] dx = {0, 1, 0, -1};boolean isin(int x, int y) {return 0 <= x && x <= n - 1 && 0 <= y && y <= n - 1;}String ns() throws IOException {while (!tok.hasMoreTokens()) {tok = new StringTokenizer(in.readLine(), " ");}return tok.nextToken();}int ni() throws IOException {return Integer.parseInt(ns());}long nl() throws IOException {return Long.parseLong(ns());}double nd() throws IOException {return Double.parseDouble(ns());}String[] nsa(int n) throws IOException {String[] res = new String[n];for (int i = 0; i < n; i++) {res[i] = ns();}return res;}int[] nia(int n) throws IOException {int[] res = new int[n];for (int i = 0; i < n; i++) {res[i] = ni();}return res;}long[] nla(int n) throws IOException {long[] res = new long[n];for (int i = 0; i < n; i++) {res[i] = nl();}return res;}public static void main(String[] args) throws IOException {in = new BufferedReader(new InputStreamReader(System.in));out = new PrintWriter(System.out);tok = new StringTokenizer("");Main main = new Main();main.solve();out.close();}}