31 lines
517 B
JavaScript
31 lines
517 B
JavaScript
var input = 10000;
|
|
|
|
var elves = [];
|
|
for(var i = 0; i < input; i++){
|
|
elves[i] = true;
|
|
}
|
|
|
|
var i = 0;
|
|
var count = elves.length;
|
|
while(count > 1){
|
|
if(!(count%1000)) console.log(count)
|
|
var toRemoveAhead = Math.floor(count/2);
|
|
var pos = i;
|
|
var passed = 0;
|
|
while(passed < toRemoveAhead){
|
|
pos = (pos + 1)%(elves.length);
|
|
if(elves[pos]){
|
|
passed++;
|
|
}
|
|
}
|
|
elves[pos] = false;
|
|
count--;
|
|
|
|
i = (i+1)%(elves.length);
|
|
while(elves[i] == false){
|
|
i = (i+1)%(elves.length);
|
|
}
|
|
}
|
|
|
|
console.log(elves.indexOf(true) + 1);
|