如果发现广告等破坏行为,请尽量将条目恢复到较早的版本而不是把相应内容直接删除,谢谢合作。
URAL/1656
来自"NOCOW"
< URAL
水题啦~桶排。。。
#include <iostream> using namespace std; const int mov[4][2]={0,1,0,-1,1,0,-1,0}; int n,l=0,r=1,tot,a[201]={0},t[10][10]={0}; struct node { int x,y; node() { x=y=0; } }Q[1001],u,v; inline int get() { while ((!a[tot]) && tot) --tot; --a[tot]; return tot; } int main() { cin >> n; for (int i=n*n;i;--i) { cin >> tot; ++a[tot]; } tot=200; Q[1].x=(n+1>>1); Q[1].y=(n+1>>1); t[Q[1].y][Q[1].x]=get(); while (l < r) { u=Q[++l]; for (int i=0;i<4;++i) { v.x=u.x+mov[i][0]; v.y=u.y+mov[i][1]; if ((v.x < 1) || (v.y < 1) || (v.x > n) || (v.y > n)) continue; if (t[v.y][v.x]) continue; t[v.y][v.x]=get(); Q[++r]=v; } } for (int i=1;i<=n;++i) { for (int j=1;j<=n;++j) cout << t[i][j] << ' '; cout << endl; } return 0; } //by zzy