結果
問題 |
No.45 回転寿司
|
ユーザー |
|
提出日時 | 2017-09-19 10:45:03 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 239 ms / 5,000 ms |
コード長 | 1,233 bytes |
コンパイル時間 | 6,714 ms |
コンパイル使用メモリ | 87,076 KB |
実行使用メモリ | 42,584 KB |
最終ジャッジ日時 | 2024-12-27 17:36:02 |
合計ジャッジ時間 | 14,612 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 30 |
ソースコード
package yukicoder; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedList; import java.util.Scanner; public class N45 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int del, i, a, b; ArrayList<Integer> sushies = new ArrayList<Integer>(); LinkedList<Integer> queue = new LinkedList<Integer>(); LinkedList<Integer> visited = new LinkedList<Integer>(); if(n == 1){ System.out.println(sc.nextInt()); return; } for(i = 0;i < n;++i){ del = sc.nextInt(); sushies.add(del); visited.add(0); } visited.set(0, sushies.get(0)); queue.add(0); queue.add(1); i = 0; while(true){ i = queue.poll(); if(visited.get(i) > sushies.get(i)){ del = visited.get(i); }else{ del = sushies.get(i); } a = i + 2; b = i + 3; if(a < n && visited.get(a) < del + sushies.get(a)){ visited.set(a, del + sushies.get(a)); queue.offer(a); } if(b < n && visited.get(b) < del + sushies.get(b)){ visited.set(b, del + sushies.get(b)); queue.offer(b); } if(queue.size() < 1){ System.out.println(Collections.max(visited)); return; } } } }