public int maxSongs(int[] duration, int[] tone, int T) {
		int max = 0;
		//ビットを使った全パターン検索を使用する。(2^15なので、計算量的には間に合う）
		for (int bit = 1 << duration.length; bit > 0; bit--) {
			int tmpSum = 0;
			ArrayList<Integer> dataList = new ArrayList<Integer>();

			for (int i = 0; i < duration.length; i++) {
				if ((1 << i & bit) > 0) {
					//durationはそのまま足す
					tmpSum += duration[i];
					dataList.add(tone[i]);
				}
				Collections.sort(dataList);
			}
			//Toneはソートして、下から順番に差分をとると最小になる。
			for (int i = 0; i < dataList.size() - 1; i++) {
				tmpSum += dataList.get(i + 1) - dataList.get(i);
			}
			//合計がT以下なら歌うことができる。
			if (tmpSum <= T) {
				//歌えた数を更新する
				max = Math.max(max, dataList.size());
			}
		}
		return max;
	}