#include #include using namespace std; const int INF = 1 << 28; int dp[1 << 15], price[15]; int main() { int N; scanf("%d", &N); for(int i=0; i> i & 1)) continue; int pbit = bit - (1 << i); // i 以外でビットが立っているものの値段の総和 int sum = 0; for(int j=0; j> j & 1) { if(i == j) continue; sum += price[j]; } } int discount = sum % 1000; dp[bit] = min(dp[bit], dp[pbit] + max(0, price[i] - discount)); } } printf("%d\n", dp[(1<