public class Main05 { public static void main(String[] args) { final int hako = Integer.valueOf(args[0]); //String blockCount = args[1]; String[] blockWidths = args[2].split(" "); int size =0; int maxWidht =0; int count =0; for (String widthStr : blockWidths) { int w = Integer.valueOf(widthStr); //そのまま入る? if (size+ w <= hako) { //入る。 size += w; count++; maxWidht = (w< maxWidht) ? maxWidht : w; }else { //入らない //入っている中の最大よりも小さい? if (w<= maxWidht) { //小さい。ので入れ替えする。 size = size-maxWidht+w; } else { //小さくない。 //なにもしない。 } } } System.out.println(count); } }