結果

問題 No.401 数字の渦巻き
コンテスト
ユーザー ああ
提出日時 2026-10-06 17:15:32
言語 Java
(openjdk 26.0.2.1 + ACL)
コンパイル:
javac -J-Duser.language=en -encoding UTF8 -cp /opt/aclib/ac_library.jar _filename_
実行:
java -ea -Xmx700m -Xss256M -DONLINE_JUDGE=true -cp .:/opt/aclib/ac_library.jar _class_
結果
AC  
実行時間 78 ms / 2,000 ms
+ 553µs
コード長 3,237 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,542 ms
コンパイル使用メモリ 89,212 KB
実行使用メモリ 46,196 KB
最終ジャッジ日時 2026-10-06 17:15:37
合計ジャッジ時間 5,402 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge4_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import java.util.*;

public class Main{
    public static void print(String a){
        System.out.println(a);
    }
    public static void print(int a){
        System.out.println(a);
    }
    public static void print(long a){
        System.out.println(a);
    }
    public static int  pow(int a,int b){
        int res=1;
        while (b>0){
            if (b%2==1){
                res*=a;
            }
            a*=a;b>>=1;
        }
        return res;
    }
    public static int pow(int a,int b,int mod){
        int res=1;
        while (b>1){
            if (b%2==1){
                res=res*a%mod;
            }
            a=a*a%mod;b>>=1;
        }
        return res;
    }
    public static long  pow(long a,long b){
        long res=1;
        while (b>0){
            if (b%2==1){
                res*=a;
            }
            a*=a;b>>=1;
        }
        return res;
    }
    public static long pow(long a,long b,long mod){
        long res=1;
        while (b>1){
            if (b%2==1){
                res=res*a%mod;
            }
            a=a*a%mod;b>>=1;
        }
        return res;
    }
    public static int abs(int a){
        if (a<0){
            return -a;
        }
        return a;
    }
    public static long abs(long a){
        if (a<0){
            return -a;
        }
        return a;
    }
    public static int gcd(int x,int y){
        if (Math.min(x,y)==0){
            return Math.max(x,y);
        }
        int z;
        while (x%y>0){
            z=x%y;
            x=y;y=z;
        }
        return y;
    }
    public static long gcd(long x,long y){
        if (Math.min(x,y)==0){
            return Math.max(x,y);
        }
        long z;
        while (x%y>0){
            z=x%y;
            x=y;y=z;
        }
        return y;
    }
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        String [][] a=new String [n][n];
        int b=0;int c=0;int d=0;
        while (d<n*n){
            while (c<n && a[b][c]==null){
                d++;
                String p=""+d;
                while (p.length()<3){
                    p="0"+p;
                }
                a[b][c]=p;c++;
            }
            c--;
            b++;
            while (b<n && a[b][c]==null){
                d++;
                String p=""+d;
                while (p.length()<3){
                    p="0"+p;
                }
                a[b][c]=p;b++;
            }
            b--;c--;
            while (c>=0 && a[b][c]==null){
                d++;
                String p=""+d;
                while (p.length()<3){
                    p="0"+p;
                }
                a[b][c]=p;
                c--;
            }
            c++;b--;
            while (b>=0 && a[b][c]==null){
                d++;
                String p=""+d;
                while (p.length()<3){
                    p="0"+p;
                }
                a[b][c]=p;b--;
            }
            b++;c++;
        }
        for (int i=0;i<n;i++){
            for (int j=0;j+1<n;j++){
                System.out.print(a[i][j]+" ");
            }
            print(a[i][n-1]);
        }
        sc.close();
    }
}
0