結果
問題 |
No.45 回転寿司
|
ユーザー |
![]() |
提出日時 | 2016-05-26 06:54:36 |
言語 | Java (openjdk 23) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,302 bytes |
コンパイル時間 | 3,664 ms |
コンパイル使用メモリ | 77,724 KB |
実行使用メモリ | 86,384 KB |
最終ジャッジ日時 | 2024-11-24 16:54:52 |
合計ジャッジ時間 | 177,703 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 3 TLE * 27 |
ソースコード
import java.util.*; public class Exercises19{ public static void main (String[] args){ Scanner sc = new Scanner(System.in); int numberOfSushi = sc.nextInt(); int[] sushiArray = new int[numberOfSushi]; LinkedList<Sushi> stack = new LinkedList<Sushi>(); int sum = 0; for (int n = 0; n < numberOfSushi; n++){ sushiArray[n] = sc.nextInt(); stack.add(new Sushi(sushiArray[n], n)); } while (stack.size() > 0){ Sushi sushi = stack.pop(); for (int n = 0; n < stack.size(); n++){ Sushi sushiCopy = stack.get(n); if (sushi.indexOfSushi == sushiCopy.indexOfSushi){ stack.remove(n); } } if(sushi.indexOfSushi + 1 >= numberOfSushi - 1){ if (sum < sushi.sumOfTaste) { sum = sushi.sumOfTaste; } }else{ int maxTaste = 0; for (int n = (sushi.indexOfSushi + 2); n < numberOfSushi; n++){ if (maxTaste < sushiArray[n]){ maxTaste = sushiArray[n]; stack.push(new Sushi(sushi.sumOfTaste + sushiArray[n], n)); } } } } System.out.println(sum); } } class Sushi { public int sumOfTaste; public int indexOfSushi; Sushi(int sum, int index){ sumOfTaste = sum; indexOfSushi = index; } }