Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <utility>#include <queue>#include <set>#include <cstring>#include <algorithm>#include <cassert>using namespace std;typedef int Status[10];typedef pair<int, int> PII;int f[362880];int g[362880];int delta[] = {-1, 1, -3, +3};int h(Status s){int ret = 0;for(int i = 1; i <= 9; i++){int r1 = (i - 1) / 3;int c1 = (i - 1) % 3;int v = s[i];if(v == 9) continue;int r2 = (v - 1) / 3;int c2 = (v - 1) % 3;ret += (r1 > r2 ? r1 - r2: r2 - r1) + (c1 > c2? c1 - c2: c2 - c1);}return ret;}int cantor(Status s){