import java.util.Scanner;
public class Main {
private static Scanner in;
public static void main
(String[] args
) { System.
out.
println("Enter a number:"); int size = in.nextInt();
if(size
== 1){System.
out.
println(1); return;}
int[] location = {0,0};
int[][] field = new int[size][size];
int count = 1;
int direction = 0; //0 = R, 1 = D, 2 = L, 3 = U
while(count <= size*size){
field[location[0]][location[1]] = count;
if(direction == 0){
if(location[1] + 1 >= size){direction++;}
else if(field[location[0]][location[1]+1] >= 1){ //If occupied
direction++;
}
}
if(direction == 1){
if(location[0] + 1 >= size){direction++;}
else if(field[location[0]+1][location[1]] >= 1){ //If occupied
direction++;
}
}
if(direction == 2){
if(location[1] - 1 < 0){direction++;}
else if(field[location[0]][location[1]-1] >= 1){ //If occupied
direction++;
}
}
if(direction == 3){
if(field[location[0]-1][location[1]] >= 1){ //If occupied
direction = 0;
}
}
if(direction == 0){
location[1]++;
}
else if(direction == 1){
location[0]++;
}
else if(direction == 2){
location[1]--;
}
else if(direction == 3){
location[0]--;
}
count++;
}
for(int y = 0; y < size;y++){
for(int x = 0; x < size; x++){
System.
out.
print(field
[y
][x
] + " "); }
}
}
}
aW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwoKcHVibGljIGNsYXNzIE1haW4gewoJcHJpdmF0ZSBzdGF0aWMgU2Nhbm5lciBpbjsKCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgkJU3lzdGVtLm91dC5wcmludGxuKCJFbnRlciBhIG51bWJlcjoiKTsKCQlpbiA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CgkJaW50IHNpemUgPSBpbi5uZXh0SW50KCk7CgkJaWYoc2l6ZSA9PSAxKXtTeXN0ZW0ub3V0LnByaW50bG4oMSk7IHJldHVybjt9CgkJCgkJaW50W10gbG9jYXRpb24gPSB7MCwwfTsKCQlpbnRbXVtdIGZpZWxkID0gbmV3IGludFtzaXplXVtzaXplXTsKCQlpbnQgY291bnQgPSAxOyAKCQlpbnQgZGlyZWN0aW9uID0gMDsgLy8wID0gUiwgMSA9IEQsIDIgPSBMLCAzID0gVQoKCQl3aGlsZShjb3VudCA8PSBzaXplKnNpemUpewoJCQlmaWVsZFtsb2NhdGlvblswXV1bbG9jYXRpb25bMV1dID0gY291bnQ7CgkJCWlmKGRpcmVjdGlvbiA9PSAwKXsKCQkJCWlmKGxvY2F0aW9uWzFdICsgMSA+PSBzaXplKXtkaXJlY3Rpb24rKzt9CgkJCQllbHNlIGlmKGZpZWxkW2xvY2F0aW9uWzBdXVtsb2NhdGlvblsxXSsxXSA+PSAxKXsgLy9JZiBvY2N1cGllZAoJCQkJCQlkaXJlY3Rpb24rKzsKCQkJCQl9CgkJCQl9CgkJCQoJCQlpZihkaXJlY3Rpb24gPT0gMSl7CgkJCQlpZihsb2NhdGlvblswXSArIDEgPj0gc2l6ZSl7ZGlyZWN0aW9uKys7fQoJCQkJZWxzZSBpZihmaWVsZFtsb2NhdGlvblswXSsxXVtsb2NhdGlvblsxXV0gPj0gMSl7IC8vSWYgb2NjdXBpZWQKCQkJCQlkaXJlY3Rpb24rKzsKCQkJCX0KCQkJfQoJCQkKCQkJaWYoZGlyZWN0aW9uID09IDIpewoJCQkJaWYobG9jYXRpb25bMV0gLSAxIDwgMCl7ZGlyZWN0aW9uKys7fQoJCQkJZWxzZSBpZihmaWVsZFtsb2NhdGlvblswXV1bbG9jYXRpb25bMV0tMV0gPj0gMSl7IC8vSWYgb2NjdXBpZWQKCQkJCQkJZGlyZWN0aW9uKys7CgkJCQkJfQoJCQkJfQoJCQkKCQkJaWYoZGlyZWN0aW9uID09IDMpewoJCQkJaWYoZmllbGRbbG9jYXRpb25bMF0tMV1bbG9jYXRpb25bMV1dID49IDEpeyAvL0lmIG9jY3VwaWVkCgkJCQkJCWRpcmVjdGlvbiA9IDA7CgkJCQl9CQoJCQl9CgoJCQlpZihkaXJlY3Rpb24gPT0gMCl7CgkJCQlsb2NhdGlvblsxXSsrOwoJCQl9CgkJCWVsc2UgaWYoZGlyZWN0aW9uID09IDEpewoJCQkJbG9jYXRpb25bMF0rKzsKCQkJfQoJCQllbHNlIGlmKGRpcmVjdGlvbiA9PSAyKXsKCQkJCWxvY2F0aW9uWzFdLS07CgkJCX0KCQkJZWxzZSBpZihkaXJlY3Rpb24gPT0gMyl7CgkJCQlsb2NhdGlvblswXS0tOwoJCQl9CgkJY291bnQrKzsKCQl9CgkJZm9yKGludCB5ID0gMDsgeSA8IHNpemU7eSsrKXsKCQkJZm9yKGludCB4ID0gMDsgeCA8IHNpemU7IHgrKyl7CgkJCQlTeXN0ZW0ub3V0LnByaW50KGZpZWxkW3ldW3hdICsgIiAiKTsKCQkJfQoJCQlTeXN0ZW0ub3V0LnByaW50bG4oKTsKCQl9CgkgIH0JCn0=