public int minimumPrice(int[] dread, int[] price) {
		int min = Integer.MAX_VALUE;
		for (int i = 1; i < 1 << dread.length; i++) {
			long dtotal = 0;
			int p = 0;
			boolean hit = true;
			for (int j = 0; j < dread.length; j++) {
				if (((1 << j) & i) > 0) {
					dtotal += dread[j];
					p += price[j];
				}
				if (dtotal < dread[j]) {
					hit = false;
					break;
				}
			}
			if (hit) {
				min=Math.min(min, p);
			}
		}
		return min;
	}