結果
問題 | 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;}}