#include #include #include #define MAX 13LL #define WIDTH (1LL<=0; x--, y++) { long long v = 2*val2[x] + 3; long long h = 2*val2[y] + 2; long long nx = 2*MAX-2-2*val2[x]; long long ny = 2*MAX-1-2*val2[y]; if (x==0) { // left border cur.diag[x].hori = h; cur.diag[x].vert = 1; } else if (y==0) { // bottom border cur.diag[x].hori = 1; cur.diag[x].vert = v; } else { long long ph = prv.diag[x-1].hori; long long pv = prv.diag[x ].vert; if (ph==0) { if (pv==0) { cur.diag[x].hori = 0; cur.diag[x].vert = 0; } else { if (hph) { cur.diag[x].hori = 0; cur.diag[x].vert = pv; } else { cur.diag[x].hori = ph; cur.diag[x].vert = 0; } } } } if (cur.diag[x].hori==0 && cur.diag[x].vert==0) { zeros++; } else { if (mx