import java.util.Scanner;
public class Main {
private static Scanner in;
public static void main
(String[] args
) { System.
out.
print("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
] + " "); }
}
}
}
aW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwoKcHVibGljIGNsYXNzIE1haW4gewoJcHJpdmF0ZSBzdGF0aWMgU2Nhbm5lciBpbjsKCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgkJU3lzdGVtLm91dC5wcmludCgiRW50ZXIgYSBudW1iZXI6Iik7CgkJaW4gPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoJCWludCBzaXplID0gaW4ubmV4dEludCgpOwoJCWlmKHNpemUgPT0gMSl7U3lzdGVtLm91dC5wcmludGxuKDEpOyByZXR1cm47fQoJCQoJCWludFtdIGxvY2F0aW9uID0gezAsMH07CgkJaW50W11bXSBmaWVsZCA9IG5ldyBpbnRbc2l6ZV1bc2l6ZV07CgkJaW50IGNvdW50ID0gMTsgCgkJaW50IGRpcmVjdGlvbiA9IDA7IC8vMCA9IFIsIDEgPSBELCAyID0gTCwgMyA9IFUKCgkJd2hpbGUoY291bnQgPD0gc2l6ZSpzaXplKXsKCQkJZmllbGRbbG9jYXRpb25bMF1dW2xvY2F0aW9uWzFdXSA9IGNvdW50OwoJCQlpZihkaXJlY3Rpb24gPT0gMCl7CgkJCQlpZihsb2NhdGlvblsxXSArIDEgPj0gc2l6ZSl7ZGlyZWN0aW9uKys7fQoJCQkJZWxzZSBpZihmaWVsZFtsb2NhdGlvblswXV1bbG9jYXRpb25bMV0rMV0gPj0gMSl7IC8vSWYgb2NjdXBpZWQKCQkJCQkJZGlyZWN0aW9uKys7CgkJCQkJfQoJCQkJfQoJCQkKCQkJaWYoZGlyZWN0aW9uID09IDEpewoJCQkJaWYobG9jYXRpb25bMF0gKyAxID49IHNpemUpe2RpcmVjdGlvbisrO30KCQkJCWVsc2UgaWYoZmllbGRbbG9jYXRpb25bMF0rMV1bbG9jYXRpb25bMV1dID49IDEpeyAvL0lmIG9jY3VwaWVkCgkJCQkJZGlyZWN0aW9uKys7CgkJCQl9CgkJCX0KCQkJCgkJCWlmKGRpcmVjdGlvbiA9PSAyKXsKCQkJCWlmKGxvY2F0aW9uWzFdIC0gMSA8IDApe2RpcmVjdGlvbisrO30KCQkJCWVsc2UgaWYoZmllbGRbbG9jYXRpb25bMF1dW2xvY2F0aW9uWzFdLTFdID49IDEpeyAvL0lmIG9jY3VwaWVkCgkJCQkJCWRpcmVjdGlvbisrOwoJCQkJCX0KCQkJCX0KCQkJCgkJCWlmKGRpcmVjdGlvbiA9PSAzKXsKCQkJCWlmKGZpZWxkW2xvY2F0aW9uWzBdLTFdW2xvY2F0aW9uWzFdXSA+PSAxKXsgLy9JZiBvY2N1cGllZAoJCQkJCQlkaXJlY3Rpb24gPSAwOwoJCQkJfQkKCQkJfQoKCQkJaWYoZGlyZWN0aW9uID09IDApewoJCQkJbG9jYXRpb25bMV0rKzsKCQkJfQoJCQllbHNlIGlmKGRpcmVjdGlvbiA9PSAxKXsKCQkJCWxvY2F0aW9uWzBdKys7CgkJCX0KCQkJZWxzZSBpZihkaXJlY3Rpb24gPT0gMil7CgkJCQlsb2NhdGlvblsxXS0tOwoJCQl9CgkJCWVsc2UgaWYoZGlyZWN0aW9uID09IDMpewoJCQkJbG9jYXRpb25bMF0tLTsKCQkJfQoJCWNvdW50Kys7CgkJfQoJCWZvcihpbnQgeSA9IDA7IHkgPCBzaXplO3krKyl7CgkJCWZvcihpbnQgeCA9IDA7IHggPCBzaXplOyB4KyspewoJCQkJU3lzdGVtLm91dC5wcmludChmaWVsZFt5XVt4XSArICIgIik7CgkJCX0KCQkJU3lzdGVtLm91dC5wcmludGxuKCk7CgkJfQoJICB9CQp9