#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; bool rcmp(int a, int b) { return a>b; } typedef long long LL; typedef struct { int h, i, j; } RNode; class mypcmp { public: bool operator()(const RNode& a, const RNode& b) { return a.h=hh-1||nj>=w-1) continue; c=mk[ni][nj]+mk[ni+1][nj+1]+mk[ni+1][nj]+mk[ni][nj+1]; if (c==3) { if (mk[ni+1][nj+1]==0) { mk[ni+1][nj+1]=1; quei[h]=ni+1; quej[h]=nj+1; h++; } else if (mk[ni+1][nj]==0) { mk[ni+1][nj]=1; quei[h]=ni+1; quej[h]=nj; h++; } else if (mk[ni][nj]==0) { mk[ni][nj]=1; quei[h]=ni; quej[h]=nj; h++; } else { mk[ni][nj+1]=1; quei[h]=ni; quej[h]=nj+1; h++; } } } } } int bb[2048]; int main() { int n, i, x, j, h, w, c, p, v, k; LL r, b, t; RNode xt; scanf("%d %d", &h, &w); x = h+w-1; c=0; priority_queue, mypcmp> q; for (i=0; i