OK、ここで私がしなければならないことです
MCI (Mammoth Cakes Incorporated) の従業員として、非常に大きな層状のバースデー ケーキを作成するのがあなたの仕事です。レイヤード バースデー ケーキは、小さな円形のケーキの層を取り、それらを積み重ねることによって作られます。
仕事を遂行するには、さまざまなサイズのレイヤーが目の前を通過する間、大きなベルトコンベアの前に立ちます。気に入ったものを見つけたら、コンベア ベルトから外してケーキに追加できます。
次のルールに従う限り、ケーキに好きなだけレイヤーを追加できます。
レイヤーがケーキに追加されると、移動できなくなります。(アイシングが台無しになります。)したがって、レイヤーはケーキの上部にのみ追加できます.
各レイヤーは一度だけあなたの前を通過します。あなたはそれを取るか、それを残すことができます。それを取る場合は、ケーキの上に追加する必要があります。放っておくと、ベルトコンベアを下っていき、二度と戻りません。
ケーキの各層は、少なくとも下の層と同じくらい小さくする必要があります。小さいレイヤーの上に大きいレイヤーを配置することはできません。
コンベアベルトを下って来る層の直径(インチ単位)が事前に通知されます。あなたの仕事は、これらのレイヤーを使用して、可能な限り高いケーキを作成することです。たとえば、次のリストがコンベア ベルトを下って来る層の直径を表しているとします: 8 16 12 6 6 10 5
ケーキの最初の層 (直径 8 インチ) を使用するとします。つまり、2 番目のレイヤーを使用することはできません (サイズ 8 インチ、および 16 インチ > 8 インチのレイヤーが既にあるため)。同様に、3 番目のレイヤーを取得することはできませんが、4 番目のレイヤーを取得することはできます (6 インチ < 8 インチであるため)。
それに続いて、5 番目のレイヤーを使用することもできます (ルールは、一番上のレイヤーを大きくすることはできず、同じサイズにすることができます)。この方法で 4 層の高さのケーキを作成できます: 8 6 6 5 ただし、最初の層を続けて 2 番目の層から始めると、高さ 5 のケーキを作成できます。 16 12 6 6 5
プログラムは、1 行に 1 つずつ、複数の入力セットを処理します。各行は整数 N で始まり、コンベア ベルトに到着する順序でケーキ層のサイズを表す N の正の整数が続きます。N は常に負でない整数、0 N 100,000 です。各レイヤーの直径は 1 ~ 100,000 です。N = 0 が入力の終わりを示す行
Sample Input
7 8 16 12 6 6 10 5
10 45 25 40 38 20 10 32 25 18 30
10 10 9 8 7 6 5 4 3 2 1
0
Sample Output
5
6
10
質問: ケーキの一番高い層を見つけてください
これまでに書いたものは次のとおりです。
import java.io.*;
import java.util.*;
public class cake
{
private static String line;
private static ArrayList storage = new ArrayList();
private static Integer highestStack = 0;
public static void main(String [] args)throws IOException
{
FileReader fin = new FileReader("cake.in");
BufferedReader infile = new BufferedReader(fin);
FileWriter fout = new FileWriter("cake.out");
BufferedWriter outfile = new BufferedWriter(fout);
line = infile.readLine();
do
{
String[] temp = line.split(" ");
String number;
for(int j = temp.length-1; j!=0; j--)
{
if(Integer.parseInt(temp[j]) <= Integer.parseInt(temp[j-1]))
{
highestStack++;
}
}
storage.add(highestStack);
// Collections.sort(storage);
line = infile.readLine();
}while(!line.equals("0"));
infile.close();
outfile.close();
}
}