結果
問題 |
No.401 数字の渦巻き
|
ユーザー |
![]() |
提出日時 | 2016-10-25 19:40:29 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,065 bytes |
コンパイル時間 | 1,398 ms |
コンパイル使用メモリ | 163,756 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-24 03:35:48 |
合計ジャッジ時間 | 2,303 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
ソースコード
#include <bits/stdc++.h> //const static double de_PI = 3.14159265358979323846; //const static int de_MOD = 1000000007; //const static int de_MAX = 999999999; //const static int de_MIN = -999999999; int main(void) { //std::ifstream in("123.txt"); std::cin.rdbuf(in.rdbuf()); int N = 0; std::cin >> N; std::vector<std::vector<int>> A(N, std::vector<int>(N)); int num = 1, i = 0, j = 0, count = 0; while (1) { i = j = count; for (; j < N - count; j++) { A[i][j] = num; num++; } if (num > N*N) { break; } i++; j--; for (; i < N - count; i++) { A[i][j] = num; num++; } if (num > N*N) { break; } j--; i--; for (; j >= count; j--) { A[i][j] = num; num++; } if (num > N*N) { break; } i--; j++; for (; i >= count + 1; i--) { A[i][j] = num; num++; } if (num > N*N) { break; } count++; } for (i = 0; i < N; i++) { for (j = 0; j < N - 1; j++) { std::cout << std::setw(3) << std::setfill('0') << A[i][j] << " "; } std::cout << std::setw(3) << std::setfill('0') << A[i][N - 1] << std::endl; } }