#include #include #include using namespace std; #define N 1005 int father[N*N]; struct EDGE { int u,v; int len; bool operator<(const EDGE& a)const { return len0) { e.u=i*n+j; e.v=i*n+j-1; e.len=abs(map[i][j]-map[i][j-1]); edge[k++]=e; } if(i>0) { e.u=i*n+j; e.v=i*n+j-n; e.len=abs(map[i][j]-map[i-1][j]); edge[k++]=e; } } sort(edge,edge+k); printf ("Case #%d:\n", ++t); printf ("%d\n", process()); } return 0; }