結果
| 問題 |
No.401 数字の渦巻き
|
| コンテスト | |
| ユーザー |
focus
|
| 提出日時 | 2018-07-31 15:40:12 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 930 bytes |
| コンパイル時間 | 509 ms |
| コンパイル使用メモリ | 68,904 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-09-19 16:33:01 |
| 合計ジャッジ時間 | 1,586 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 30 |
ソースコード
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
int main(){
int field[32][32]={0};
int n;
cin >> n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
field[i][j]=1000;
}
}
int x=0,y=1,flag=0,num=1;
while(num<=(n*n)){
switch(flag){
case 0:
x++;
if(field[y][x]==1000) field[y][x]=num;
else{
flag=1;
x--;
num--;
}
break;
case 1:
y++;
if(field[y][x]==1000) field[y][x]=num;
else{
flag=2;
y--;
num--;
}
break;
case 2:
x--;
if(field[y][x]==1000) field[y][x]=num;
else{
x++;
flag=3;
num--;
}
break;
case 3:
y--;
if(field[y][x]==1000) field[y][x]=num;
else{
y++;
flag=0;
num--;
}
break;
}
num++;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(j!=1) printf(" ");
printf("%03d",field[i][j]);
}
printf("\n");
}
return 0;
}
focus