結果
問題 | No.401 数字の渦巻き |
ユーザー |
![]() |
提出日時 | 2019-12-13 02:49:59 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 908 bytes |
コンパイル時間 | 1,769 ms |
コンパイル使用メモリ | 172,800 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-26 05:04:25 |
合計ジャッジ時間 | 2,917 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
ソースコード
#include <bits/stdc++.h>#define rep(i,n) for(int i=0;i<(n);++i)#define all(a) (a).begin(),(a).end()using namespace std;typedef long long ll;int main() {ios::sync_with_stdio(false);cin.tie(0);int n;cin >> n;vector<vector<int>> mas(n + 2, vector<int>(n + 2));rep(q, n + 2) {rep(w, n + 2) {mas[q][w] = 31;}}for (int q = 1; q <= n; ++q) {for (int w = 1; w <= n; ++w) {mas[q][w] = 0;}}vector<int> dx = { 1,0,-1,0 };vector<int> dy = { 0,1,0,-1 };int a = 1;int i = 1, j = 1;int p = 0;while (a <= n * n) {mas[i][j] = a;a++;if ((dx[p] != 0 && mas[i + dx[p]][j] != 0) || (dy[p] != 0 && mas[i][j + dy[p]] != 0)) {p++;}if (p == 4) {p = 0;}i += dx[p];j += dy[p];}for (int q = 1; q <= n; ++q) {for (int w = 1; w <= n; ++w) {cout << setfill('0') << right << setw(3) << mas[w][q] << ' ';}cout << endl;}return 0;}