Matlab(86)
x=input('');X=perms(1:6);disp(char(X(find(sum(abs(diff(x(X).')))==input(''),1),:)+64))
ソリューションが存在する例:
>> x=input('');X=perms(1:6);disp(char(X(find(sum(abs(diff(x(X).')))==input(''),1),:)+64))
[0, 5, 7, 13, 16, 17]
62
DBFAEC
>>
ソリューションが存在しない例:
>> x=input('');X=perms(1:6);disp(char(X(find(sum(abs(diff(x(X).')))==input(''),1),:)+64))
[0, 5, 7, 13, 16, 17]
100
>>
Matlab(62)
文字の代わりに位置を生成し、解が存在しない場合に空の行列を生成することにより、出力形式を緩和できる場合:
X=perms(input(''));X(find(sum(abs(diff(X.')))==input(''),1),:)
ソリューションが存在する例:
>> X=perms(input(''));X(find(sum(abs(diff(X.')))==input(''),1),:)
[0, 5, 7, 13, 16, 17]
62
ans =
13 5 17 0 16 7
ソリューションが存在しない例:
>> X=perms(input(''));X(find(sum(abs(diff(X.')))==input(''),1),:)
[0, 5, 7, 13, 16, 17]
62
ans =
Empty matrix: 0-by-6
Matlab(54)
プログラムがすべての有効なパスを提供することが許容できる場合:
X=perms(input(''));X(sum(abs(diff(X.')))==input(''),:)
ソリューションが存在する例:
>> X=perms(input(''));X(sum(abs(diff(X.')))==input(''),:)
[0, 5, 7, 13, 16, 17]
62
ans =
13 5 17 0 16 7
13 5 16 0 17 7
13 0 17 5 16 7
13 0 16 5 17 7
7 16 5 17 0 13
7 16 0 17 5 13
7 17 5 16 0 13
7 17 0 16 5 13
[0, 5, 7, 13, 16, 17]
と62
)としてより優れている可能性があるため、このケースにハードコードされていないことを確認できます。