結果
問題 | No.401 数字の渦巻き |
ユーザー |
![]() |
提出日時 | 2023-08-14 02:29:28 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,302 bytes |
コンパイル時間 | 932 ms |
コンパイル使用メモリ | 108,992 KB |
最終ジャッジ日時 | 2025-02-16 08:00:46 |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
ソースコード
#include<iostream>#include<string>#include<algorithm>#include<cctype>#include<set>#include<bitset>#include<math.h>#include<map>#include<queue>#include<iomanip>using namespace std;#ifdef _WIN32#include <Windows.h>#endifint main(){int n, i = 0, j = 0;cin >> n;int rt = n, lt = -1, up = 0, lo = n, cnt = 1;vector<vector<int>> v(n, vector<int>(n, 0));while (i != n/2 && j != n/2 && v[i][j] == 0){while (rt != j && v[i][j] == 0){v[i][j] = cnt;cnt++;j++;}rt--;j--;i++;while (lo != i && v[i][j] == 0){v[i][j] = cnt;cnt++;i++;}lo--;i--;j--;while (lt != j && v[i][j] == 0){v[i][j] = cnt;cnt++;j--;}lt++;j++;i--;while (up != i && v[i][j] == 0){v[i][j] = cnt;cnt++;i--;}lo++;i++;j++;}if (v[i][j] == 0) v[i][j] = cnt;cnt = 1;for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){printf("%03d", v[i][j]);if (!((j+1)%n)) cout << endl;else cout << " ";}}}