Anonymous user
Dinesman's multiple-dwelling problem: Difference between revisions
Dinesman's multiple-dwelling problem (view source)
Revision as of 03:12, 14 February 2012
, 12 years agoShorter D entry
(Updated D entry) |
(Shorter D entry) |
||
Line 128:
=={{header|D}}==
As for flexibility: the solve
<lang d>import std.stdio, std.
std.math, std.traits;▼
struct
private immutable size_t num;
private uint[] seq;
Line 181 ⟶ 180:
}
}
foreach (pred; predicates)▼
}
void main() {
//import std.traits: EnumMembers;
enum N { Baker, Cooper, Fletcher, Miller, Smith } // names▼
alias /*immutable*/ bool function(in uint[]) pure nothrow
P p1 = s => s[N.Baker] != s.length-1;
P p2 = s => s[N.Cooper] != 0;
Line 207 ⟶ 195:
P p6 = s => abs(cast(int)(s[N.Cooper] - s[N.Fletcher])) != 1;
enum
writeln(map!(p => [EnumMembers!N][p])(sol));▼
foreach (sol; LazyPermutations(nNames))
▲ writeln(map!(p => [EnumMembers!N][p])(sol));
}</lang>
Output:
|