window.onload = function() { /* * Jealous Husbands Problem * * use river_crossing_puzzle.dfs.js * */ var AM = 2, BM = 3, CM = 5, AF = 7, BF = 11, CF = 13, SH = 17; var mem = { AM:AM, BM:BM, CM:CM, AF:AF, BF:BF, CF:CF, SH:SH }; var disp = { AM:'A', BM:'B', CM:'C', AF:'<span>A</span>', BF:'<span>B</span>', CF:'<span>C</span>', SH:'' }; var ship = [ AM*SH, BM*SH, CM*SH, AF*SH, BF*SH, CF*SH, AM*BM*SH, AM*CM*SH, BM*CM*SH, AM*AF*SH, BM*BF*SH, CM*CF*SH, AF*BF*SH, AF*CF*SH, BF*CF*SH ]; var ok = function(r) { if (r.AF == 1 && r.AM == 0 && r.BM+r.CM > 0) return false; if (r.BF == 1 && r.BM == 0 && r.AM+r.CM > 0) return false; if (r.CF == 1 && r.CM == 0 && r.AM+r.BM > 0) return false; return true; }; var q = new RiverCrossingPuzzle(mem, null, ship, ok, disp); q.compact(function(a, b) { for (var i in a) { var ar = Rcp.count(a[i][0], mem); var br = Rcp.count(b[i][0], mem); if (ar.AM+ar.BM+ar.CM != br.AM+br.BM+br.CM || ar.AF+ar.BF+ar.CF != br.AF+br.BF+br.CF) return false; } return true; }); document.getElementById('answer').innerHTML = q; /* ソース表示用 */ var jsparser_obj = new JSParser(); var ro = document.getElementById('ro_script'); var src = ro.text || ro.innerHTML; document.getElementById('viewsrc').innerHTML = jsparser_obj.parse(src); };