結果

問題 No.44 DPなすごろく
ユーザー ああ
提出日時 2026-10-07 21:33:54
言語 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  
実行時間 56 ms / 5,000 ms
+ 337µs
コード長 2,184 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 2,192 ms
コンパイル使用メモリ 86,032 KB
実行使用メモリ 45,376 KB
最終ジャッジ日時 2026-10-11 08:37:03
合計ジャッジ時間 5,125 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 21
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import java.util.Scanner;

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();
        long [] dp =new long[2];
        dp[0]=1;
        for (int i=0;i<n;i++){
            long [] dp2=new long [2];
            dp2[0]=dp[1]+dp[0];
            dp2[1]=dp[0];
            dp=dp2;
        }
        print(dp[0]);
        sc.close();
    }
}
0