Codeforces #43 B "T-shirts from Sponsor"

問題:http://codeforces.com/contest/46/problem/B

参加形式:本番.

5種類のサイズのTシャツの仕入れ数とTシャツを配布する人数および要求サイズを入力とする.要求順にTシャツを渡し,残っているTシャツから要求サイズにもっとも近いサイズ(近さが同じなら大きい方)を選択して渡す.それぞれの人に渡すTシャツのサイズを求める.

答えとなるサイズのTシャツの残り枚数をそれぞれ確認していく.

import java.util.*;

public class B_TShirtsFromSponsor {
        public static void main(String[] args) {
                Scanner s = new Scanner(System.in);
                List<String> sizes = Arrays.asList("S","M","L","XL","XXL");
                int[]nums = new int[5];
                for(int i = 0; i < 5; ++i){
                        nums[i]=s.nextInt();
                }
                for(int k = s.nextInt();k-->0;){
                        int index = sizes.indexOf(s.next());
                        for(int d = 0; d < 5; ++d){
                                if(index+d < 5 && nums[index+d]>0){
                                        --nums[index+=d];
                                        break;
                                }else if(index - d >= 0 && nums[index-d]>0){
                                        --nums[index-=d];
                                        break;
                                }
                        }
                        System.out.println(sizes.get(index));
                }
        }
}