Dinesman's multiple-dwelling problem: Difference between revisions

Content added Content deleted
(→‎{{header|D}}: fix overflow issue)
Line 131: Line 131:
<lang d>import std.stdio, std.exception, std.range, std.algorithm, std.math;
<lang d>import std.stdio, std.exception, std.range, std.algorithm, std.math;


pure T fact(T)(T n) {
pure ulong fact(uint n) {
T result = 1;
ulong result = 1;
for (T i = 2; i <= n; i++)
for (uint i = 2; i <= n; i++)
result *= i;
result *= i;
return result;
return result;
Line 140: Line 140:
struct LazyPermutation {
struct LazyPermutation {
private uint[] seq;
private uint[] seq;
private size_t tot;
private ulong tot;
private size_t num;
private size_t num;