結果
問題 | No.401 数字の渦巻き |
ユーザー |
|
提出日時 | 2016-12-22 02:12:44 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,084 bytes |
コンパイル時間 | 740 ms |
コンパイル使用メモリ | 82,060 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-12-14 14:15:56 |
合計ジャッジ時間 | 1,598 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
ソースコード
#define _USE_MATH_DEFINES #include<stdio.h> #include<string> #include<iostream> #include<cctype> #include<cstdio> #include<vector> #include<stack> #include<queue> #include <algorithm> #include<math.h> #include<set> #include<map> #include<iomanip> //#include<bits/stdc++.h> using namespace std; int r[50][50]; int main() { int n; cin >> n; int s = 1; int p = n-1; int x = 0, y = 0, d = 0; if (n == 1) { cout << "001" << endl; return 0; } while (s <= n*n) { d %= 4; for (int i = 0; i < p; i++) { if (r[y][x])break; if (d == 0)r[y][x] = s, x++; if (d == 1)r[y][x] = s, y++; if (d == 2)r[y][x] = s, x--; if (d == 3)r[y][x] = s, y--; s++; // cout << x << " " << y << endl; } if (r[y][x]) { if(d==3)y++, x++; if (d == 2)y--, x++; if (d == 1)y--, x--; if (d == 0)y++, x--; } d++; if (d == 4)p--; } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (j)cout << " "; if (r[i][j] < 10)cout << "00"; else if (r[i][j] < 100)cout << 0; printf("%d",r[i][j]); } cout << endl; } return 0; }