题目大意:给一个n*m,但挖去(x,y)的网格,让你分成若干矩形,使得
1.每个矩形至少有一个面在边缘上,
2.最大的矩形的面积最小
求2中最大矩形面积最小值
题解:强啊,菜啊
我的收获:大力构造
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std ;
int main() {
int n , m , x , y , ans , min1 , min2 ;
while( scanf("%d %d %d %d", &n, &m, &x, &y) != EOF ) {
if( n > m ) {
swap(n,m) ;
swap(x,y) ;
}
if( n == 1 ) {
printf("1\n") ;
continue ;
}
min1 = min(x-1,min(y,m-y+1)) ;
min2 = min(n-x,min(y,m-y+1)) ;
ans = (n+1)/2 ;
if( n == m && n%2 && ans == x && ans == y )
ans-- ;
printf("%d\n", max(ans,max(min1,min2) )) ;
}
return 0 ;
}