#include #include #include #define rep(i,a) for(int i=0;i<(a);++i) const int MAX_N = 16, INF = std::numeric_limits::max()>>2; int N, D[MAX_N]; int dp[1<>i&1 && D[i] < 0 ) ++did; rep( i, N ) if( !(S>>i&1) ) { if( D[i] > 0 ) dp[S|1< 0 ) dp[S|1<