#include #include #define POS(i,j) ((i)*n+(j)) #define MAX(a,b) ((a)>(b)?(a):(b)) int calc(int bit,int n,int *score,int *dp){ if(dp[bit]>=0) return dp[bit]; int res=0; int i; for(i=0;i>i)&0x01){ int j; int point=0; for(j=0;j>j)&0x01)*score[POS(i,j)]; } res=MAX(res,point+calc(bit^(1<