2019 Team #10
Source:
May 1, 2022
2019 Team
Problem Statement
people, numbered through counterclockwise, sit around a circular table. They begin playing a game. Each person is initially considered "alive". Starting with person , the first person eliminates the closest "alive" person to their right (so Person eliminates Person ). Then the next "alive" person, moving counterclockwise, eliminates the closest "alive" person to their right (so since Person is eliminated, Person eliminates Person ). This process continues until there is only "alive" person remaining. What is the number of the last "alive" person?
[asy]
usepackage("cancel", "makeroom, thicklines");
usepackage("bm");
size(15cm);
picture p;
draw(p, circle((0,0), 5));
for(int i = 0; i < 4; ++i) {
label(p, "", 5 * dir(-20 * i - 100), 2 * dir(-20 * i - 100));
label(p, "", 5 * dir(20 * i - 80), 2 * dir(20 * i - 80));
}
int n = 20;
for(int i = 0; i <= n; ++i) {
label(p, scale(2)*"", 6 *dir(180 / n * i));
}
draw(p, arc((0,0), 8 * dir(-80), 8 * dir(0)), EndArrow);
add(shift(-20, 0) * p);
draw((-11, 0)--(-8,0), EndArrow);
picture q;
draw(q, circle((0,0), 5));
for(int i = 0; i < 4; ++i) {
label(q, "", 5 * dir(-20 * i - 100), 2 * dir(-20 * i - 100));
if(i != 1) label(q, "", 5 * dir(20 * i - 80), 2 * dir(20 * i - 80));
}
int n = 20;
for(int i = 0; i <= n; ++i) {
label(q, scale(2)*"", 6 *dir(180 / n * i));
}
draw(q, arc((0,0), 8 * dir(-80), 8 * dir(0)), EndArrow);
for(int i = 0; i < 1; i+=2) {
//label(q, "\bm\xcancel{~}", 5 * dir(-20 * i - 100), 2 * dir(-20 * i - 100));
label(q, "\xcancel{2}", 5 * dir(20 * (i + 1) - 80), 2 * dir(20 * (i + 1) - 80));
}
add(q);
draw((9,0)--(12,0), EndArrow);
picture r;
draw(r, circle((0,0), 5));
for(int i = 0; i < 4; ++i) {
if(i % 2 == 1) label(r, "", 5 * dir(-20 * i - 100), 2 * dir(-20 * i - 100));
if(i % 2 != 1) label(r, "", 5 * dir(20 * i - 80), 2 * dir(20 * i - 80));
}
int n = 20;
for(int i = 0; i <= n; ++i) {
label(r, scale(2)*"", 6 *dir(180 / n * i));
}
draw(r, arc((0,0), 8 * dir(-80), 8 * dir(0)), EndArrow);
for(int i = 0; i < 4; i+=2) {
label(r, "\xcancel{" + string(40 - i) +"}", 5 * dir(-20 * i - 100), 2 * dir(-20 * i - 100));
label(r, "\xcancel{" + string(i + 1) + "}", 5 * dir(20 * (i + 1) - 80), 2 * dir(20 * (i + 1) - 80));
}
add(shift(20, 0) * r);
[/asy]
In the last step here, Person eliminates Person . Next turn, Person eliminates the closest person to his right, Person .