From 1017ff846def1ce2f9f9ae4b4ec1ccea501709b5 Mon Sep 17 00:00:00 2001 From: Ren Baoshuo Date: Thu, 6 Aug 2020 14:35:45 +0800 Subject: [PATCH] =?UTF-8?q?P5731=20=E3=80=90=E6=B7=B1=E5=9F=BA5.=E4=B9=A06?= =?UTF-8?q?=E3=80=91=E8=9B=87=E5=BD=A2=E6=96=B9=E9=98=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit R36471603 --- problem/P5731/P5731.cpp | 64 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 problem/P5731/P5731.cpp diff --git a/problem/P5731/P5731.cpp b/problem/P5731/P5731.cpp new file mode 100644 index 00000000..d25bfb4b --- /dev/null +++ b/problem/P5731/P5731.cpp @@ -0,0 +1,64 @@ +// R36471603 + +#include + +using namespace std; + +int n, k, a[15][15], ax, ay; + + +int main() { + k = ax = 1; + + scanf("%d", &n); + + /** + * ax, ay+1 -> 右侧 + * ax, ay-1 -> 左侧 + * ax+1, ay -> 下方 + * ax-1, ay -> 上方 + * + * 0 --- 1 ---------- ay ----------> n + * | +------+------+------+------+------+ + * 1 | | | ax-1 | | | + * | | | | ay | | | + * | +------+------+------+------+------+ + * a | | ax | ax | ax | | + * x | | ay-1 | ay | ay+1 | | + * | +------+------+------+------+------+ + * | | | | ax+1 | | | + * | | | | ay | | | + * | +------+------+------+------+------+ + * | | | | | | | + * | | | | | | | + * | +------+------+------+------+------+ + * | | | | | | | + * n | | | | | | n + * +------+------+------+------+------+ + * n + */ + + while(k <= n*n) { + while(ay < n && !a[ax][ay+1]) { // 右侧 不过边界 && 未填数 + a[ax][++ay] = k++; + } + while(ax < n && !a[ax+1][ay]) { // 下方 不过边界 && 未填数 + a[++ax][ay] = k++; + } + while(ay > 1 && !a[ax][ay-1]) { // 左侧 不过边界 && 未填数 + a[ax][--ay] = k++; + } + while(ax > 1 && !a[ax-1][ay]) { // 上方 不过边界 && 未填数 + a[--ax][ay] = k++; + } + } + + for(int i = 1 ; i <= n ; i++) { + for(int j = 1 ; j <= n ; j++) { + printf("%3d", a[i][j]); + } + printf("\n"); + } + + return 0; +}