結果
問題 |
No.555 世界史のレポート
|
ユーザー |
![]() |
提出日時 | 2017-11-11 08:31:06 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 150 ms / 2,000 ms |
コード長 | 843 bytes |
コンパイル時間 | 1,991 ms |
コンパイル使用メモリ | 74,720 KB |
実行使用メモリ | 54,268 KB |
最終ジャッジ日時 | 2024-11-24 18:24:10 |
合計ジャッジ時間 | 5,563 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 20 |
ソースコード
import java.util.Arrays; import java.util.LinkedList; import java.util.Scanner; public class Main { public static long MOD = 1000000007; public static void main(String[] args) { Scanner sc = new Scanner(System.in); final int N = sc.nextInt(); final int C = sc.nextInt(); final int V = sc.nextInt(); long[] min_cost = new long[2 * N + 1]; Arrays.fill(min_cost, Long.MAX_VALUE / 2 - 1); min_cost[1] = 0; for(int i = 1; i <= N; i++){ for(int j = 2 * i, count = 1; j <= 2 * N; j += i, count++){ final long paste_cost = C + count * V; min_cost[j] = Math.min(min_cost[j], min_cost[i] + paste_cost); } } long min = Long.MAX_VALUE / 2 - 1; for(int i = N; i <= 2 * N; i++){ min = Math.min(min, min_cost[i]); } //System.out.println(Arrays.toString(min_cost)); System.out.println(min); } }