結果

問題 No.401 数字の渦巻き
ユーザー hiyokko2
提出日時 2016-07-22 23:09:46
言語 C++11
(gcc 13.3.0)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 1,335 bytes
コンパイル時間 576 ms
コンパイル使用メモリ 55,388 KB
実行使用メモリ 6,820 KB
最終ジャッジ日時 2024-11-06 09:20:04
合計ジャッジ時間 1,441 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

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

#include <iostream>
#include <cstdio>
using namespace std;
int N;
int masu[30][30];
int dir; //1,2,3,4
int main()
{
cin >> N;
for (int i=0; i<N; i++)
for (int j=0; j<N; j++)
masu[i][j] = 0;
int num = 1;
dir = 1;
int ni = 0, nj = 0;
while (num <= N * N)
{
masu[ni][nj] = num;
switch (dir)
{
case 1:
nj++;
if (nj >= N)
{
nj--;
dir = 2;
ni++;
num++;
break;
}
if (masu[ni][nj] != 0)
{
nj--;
dir = 2;
ni++;
num++;
break;
}
num++;
break;
case 2:
ni++;
if (ni >= N)
{
ni--;
dir = 3;
nj--;
num++;
break;
}
if (masu[ni][nj] != 0)
{
ni--;
dir = 3;
nj--;
num++;
break;
}
num++;
break;
case 3:
nj--;
if (nj < 0)
{
nj++;
dir = 4;
ni--;
num++;
break;
}
if (masu[ni][nj] != 0)
{
nj++;
dir = 4;
ni--;
num++;
break;
}
num++;
break;
case 4:
ni--;
if (masu[ni][nj] != 0)
{
ni++;
dir = 1;
nj++;
num++;
break;
}
num++;
break;
}
}
for (int i=0; i<N; i++)
{
for (int j=0; j<N; j++)
{
printf("%03d", masu[i][j]);
if (j != N - 1) printf(" ");
else if (j == N - 1) printf("\n");
}
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0