結果
| 問題 |
No.3092 Tired Queen
|
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2025-03-09 14:25:26 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 81 ms / 2,000 ms |
| コード長 | 1,087 bytes |
| コンパイル時間 | 468 ms |
| コンパイル使用メモリ | 26,624 KB |
| 実行使用メモリ | 8,604 KB |
| 最終ジャッジ日時 | 2025-03-09 14:25:31 |
| 合計ジャッジ時間 | 4,936 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 41 |
コンパイルメッセージ
main.c: In function ‘solve’:
main.c:52:22: warning: passing argument 2 of ‘solve’ from incompatible pointer type [-Wincompatible-pointer-types]
52 | solve(N - 2, &(ans[1][1]), k);
| ^~~~~~~~~~~~
| |
| int *
main.c:3:23: note: expected ‘int (*)[1001]’ but argument is of type ‘int *’
3 | void solve(int N, int ans[][1001], int k)
| ~~~~^~~~~~~~~~~
main.c: In function ‘main’:
main.c:58:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
58 | scanf("%d", &N);
| ^~~~~~~~~~~~~~~
ソースコード
#include <stdio.h>
void solve(int N, int ans[][1001], int k)
{
if (N <= 0) return;
else if (N == 1) {
ans[1][1] = ++k;
return;
} else if (N == 2) {
ans[1][1] = ++k;
ans[2][2] = ++k;
ans[1][2] = ++k;
ans[2][1] = ++k;
return;
}
int i;
ans[1][1] = ++k;
ans[N][N] = ++k;
ans[1][N] = ++k;
ans[N][1] = ++k;
for (i = 2; i < N; i++) {
if (i % 2 == 0) {
ans[N][i] = ++k;
ans[N-i+1][1] = ++k;
} else {
ans[N-i+1][1] = ++k;
ans[N][i] = ++k;
}
}
if (N % 2 == 0) {
for (i = 2; i < N; i++) {
if (i % 2 == 0) {
ans[1][N-i+1] = ++k;
ans[i][N] = ++k;
} else {
ans[i][N] = ++k;
ans[1][N-i+1] = ++k;
}
}
} else {
for (i = 2; i < N; i++) {
if (i % 2 == 0) {
ans[i][N] = ++k;
ans[1][N-i+1] = ++k;
} else {
ans[1][N-i+1] = ++k;
ans[i][N] = ++k;
}
}
}
solve(N - 2, &(ans[1][1]), k);
}
int main()
{
int N;
scanf("%d", &N);
int i, j, ans[1001][1001];
solve(N, ans, 0);
for (i = 1; i <= N; i++) {
for (j = 1; j <= N; j++) printf("%d ", ans[i][j]);
printf("\n");
}
fflush(stdout);
return 0;
}