結果
| 問題 |
No.401 数字の渦巻き
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-12-17 00:48:48 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,128 bytes |
| コンパイル時間 | 1,554 ms |
| コンパイル使用メモリ | 173,072 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-09-20 05:39:36 |
| 合計ジャッジ時間 | 2,943 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 1 WA * 28 RE * 1 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
using i64 = int64_t;
using u64 = uint64_t;
using vi64 = vector<i64>;
using vu64 = vector<u64>;
using vvi64 = vector<vi64>;
using vvu64 = vector<vu64>;
#define rep(i,n) for(int i=0, i##_len=(n); i<i##_len; ++i)
#define ALL(x) (x).begin(),(x).end()
#define RALL(obj) (obj).rbegin(),(obj).rend()
#define SZ(x) ((int)(x).size())
#define PRINT(n) cout << (n) << "\n";
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
void YESorNO(bool p) {
cout << (p ? "YES" : "NO") << endl;
return;
}
void run() {
int n;
cin >> n;
vvi64 m(n, vi64(n));
int x = 0, y = 0, d = 0;
for (int i = 1; i <= n * n; i++) {
m[y][x] = i;
int xx = x + dy[d];
int yy = y + dy[d];
if (!(0 <= xx && xx < n && 0 <= yy && yy < n) || m[yy][xx] != 0) {
d++;
d %= 4;
xx = x + dx[d];
yy = y + dy[d];
}
x = xx;
y = yy;
}
rep(y,n) {
rep(x,n) {
if (x + 1 < n) printf("%03d", m[y][x]);
else printf("%03d\n", m[y][x]);
}
}
return;
}
int main() {
cin.tie(nullptr);
ios_base::sync_with_stdio(false);
run();
return 0;
}