結果
問題 |
No.401 数字の渦巻き
|
ユーザー |
|
提出日時 | 2021-09-12 20:15:19 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 680 bytes |
コンパイル時間 | 2,298 ms |
コンパイル使用メモリ | 192,768 KB |
最終ジャッジ日時 | 2025-01-24 13:22:53 |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:19:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 19 | scanf("%d",&n); | ~~~~~^~~~~~~~~
ソースコード
#include <bits/stdc++.h> using namespace std; int dy[4] = { 0,1,0,-1 }; int dx[4] = { 1,0,-1,0 }; int board[31][31]; int main(void) { int n; int num = 1; int state = 0; int move = 0; int max = 1; memset(board,-1,sizeof(board)); scanf("%d",&n); int y = 0; int x = 0; int dir = 0; while(num<=n*n) { board[y][x] = num++; int ny = y + dy[dir]; int nx = x + dx[dir]; if(ny<0 || ny>=n || nx<0 || nx>=n) { dir++; dir%=4; } else if(board[ny][nx]!=-1) { dir++; dir%=4; } y += dy[dir]; x += dx[dir]; } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%03d ",board[i][j]); } printf("\n"); } return 0; }