結果
問題 | No.401 数字の渦巻き |
ユーザー |
![]() |
提出日時 | 2016-12-02 04:51:07 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 271 ms / 2,000 ms |
コード長 | 1,550 bytes |
コンパイル時間 | 4,477 ms |
コンパイル使用メモリ | 77,180 KB |
実行使用メモリ | 48,276 KB |
最終ジャッジ日時 | 2024-11-27 17:08:24 |
合計ジャッジ時間 | 9,582 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
ソースコード
import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int N = sc.nextInt();int [][]map= new int[N][N];int num=1;int dir=0;int x=0;int y=0;while(num<=N*N){int t=dir%4;if(t==0){map[y][x]=num;num++;if(x==N-1||map[y][x+1]!=0){dir++;y++;continue;}x++;}else if(t==1){map[y][x]=num;num++;if(y==N-1||map[y+1][x]!=0){dir++;x--;continue;}y++;}else if(t==2){map[y][x]=num;num++;if(x==0||map[y][x-1]!=0){dir++;y--;continue;}x--;}else{map[y][x]=num;num++;if(y==0||map[y-1][x]!=0){dir++;x++;continue;}y--;}}for(int i=0; i<N; i++){for(int j=0; j<N; j++){System.out.print(String.format("%03d",map[i][j]));if(j!=N-1){System.out.print(" ");}}System.out.println();}}}