結果

問題 No.401 数字の渦巻き
ユーザー @abcde
提出日時 2019-02-20 22:21:28
言語 C++11
(gcc 13.3.0)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 2,382 bytes
コンパイル時間 2,000 ms
コンパイル使用メモリ 161,144 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-11-07 19:35:20
合計ジャッジ時間 2,964 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include <bits/stdc++.h>
using namespace std;
int main() {
// 1. .
int N;
cin >> N;
// 2.
// ex.
// N = 4 .
// 4 -> 3 -> 3 -> 2 -> 2 -> 1 -> 1
// , .
// N -> N - 1 -> N - 1 -> N - 2 -> N - 2 -> ... -> 2 -> 2 -> 1 -> 1
vector<int> v;
int count = N;
v.push_back(N - 1); // N .
count--;
while(count > 0) v.push_back(count), v.push_back(count), count--;
// for(auto &p : v) cout << p << " " << endl;
// 3. (r, c),
// dr, dc 使, -> -> -> -> -> ... .
int dr[4] = {0, 1, 0, -1}, dc[4] = {1, 0, -1, 0};
int ans[N][N];
int index = 1;
ans[0][0] = index;
// (), .
int befR = 0, befC = 0;
// .
int flag = 0;
for(auto &p : v){
// 3-1. (), .
int curR = befR, curC = befC;
// 3-2. .
for(int i = 0; i < p; i++){
curR += dr[flag], curC += dc[flag];
ans[curR][curC] = ++index;
// cout << "curR:" << curR << " curC:" << curC << " index:" << index << endl;
// ex.
// N = 3 .
// curR:0 curC:1 index:2
// curR:0 curC:2 index:3
// curR:1 curC:2 index:4
// curR:2 curC:2 index:5
// curR:2 curC:1 index:6
// curR:2 curC:0 index:7
// curR:1 curC:0 index:8
// curR:1 curC:1 index:9
}
// 3-3. flag.
(++flag) %= 4;
// cout << "flag=" << flag << endl;
// 3-4. .
befR = curR, befC = curC;
}
// 4. .
// for(int i = 0; i < N; i++) for(int j = 0; j < N; j++) cout << ans[i][j] << " ";
// ex.
// N = 3 .
// -> 1 2 3 8 9 4 7 6 5
// string ans = "";
// cout << ans << endl;
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++){
cout << setfill('0') << setw(3) << ans[i][j] << " ";
}
cout << endl;
}
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0