sx模拟
#include <cstdio>
#include <cstring>
#include <iostream>
#include <cstdlib>
using namespace std;
#define MAXN (120)
int maps[MAXN][MAXN];
int hang[MAXN], lie[MAXN];
int main()
{
int n;
cin >> n;
for(int i = 1; i <= n; ++ i)
for(int j = 1; j <= n; ++ j)
scanf("%d", &maps[i][j]);
#define INF (1e9)
printf("%d\n", maps[2][2]);
while(n > 1)
{
fill(hang+1, hang+n+1, 1e9);
fill(lie+1, lie+n+1, 1e9);
for(int i = 1; i <= n; ++ i)
for(int j = 1; j <= n; ++ j)
hang[i] = min(hang[i], maps[i][j]);
for(int i = 1; i <= n; ++ i)
for(int j = 1; j <= n; ++ j)
maps[i][j] -= hang[i];
for(int i = 1; i <= n; ++ i)
for(int j = 1; j <= n; ++ j)
lie[j] = min(lie[j], maps[i][j]);
for(int i = 1; i <= n; ++ i)
for(int j = 1; j <= n; ++ j)
maps[i][j] -= lie[j];
for(int i = 3; i <= n; ++ i)
for(int j = 1; j <= n; ++ j)
maps[i-1][j] = maps[i][j];
for(int i = 1; i <= n; ++ i)
for(int j = 3; j <= n; ++ j)
maps[i][j-1] = maps[i][j];
printf("%d\n", maps[2][2]);
-- n;
}
return 0;
}