/********************************* * The Bookcase * Author: A. Björklund **********************************/ #include #define max(a,b) ((a)>(b)?(a):(b)) #define MAXN (100) #define MAXW (50*MAXN) struct tbook {int h,t;}; int m,n; short mx[MAXW][MAXW][2]; struct tbook book[MAXN]; int csum[MAXN]; int cmp(void* a,void *b) { return ((struct tbook*)b)->h-((struct tbook*)a)->h; } int main() { int i,j,k,sum,best; scanf("%d",&m); while (m--) { scanf("%d",&n); for (i=0;i=0;j--) for (k=csum[i-1]-j;k>=0;k--) if (mx[j][k][0]=0;j--) for (k=csum[n-1]-j;k>=0;k--) if (csum[n-1]-j-k>0) { int h=mx[j][k][0]+mx[j][k][1]+book[0].h; int w=max(csum[n-1]-j-k,max(j,k)); if (w*h