神秘分讨题(?
总共 \(4\) 中情况。
第一种:
三个竖的并列:ans=min(ans,(h%3>0)*w);
。
第二种:
三个横的并列:ans=min(ans,(w%3>0)*h);
。
第三种:
一个横的矩形,然后是两个竖着的。
For(i,1,h) {
int fst=i*w;
int scd=(w/2)*(h-i);
int thd=(w%2>0)*(h-i)+(w/2)*(h-i);
ans=min(ans,max(abs(fst-thd),max(abs(fst-scd),abs(scd-thd))));
}
第四种:
一个竖的矩形,然后两个横的。在上面的代码加一个 swap(h,w)
即可。