IMO 2024 · Problem 5
Turbo the snail plays a game on a board with 2024 rows and 2023 columns. There are hidden monsters in 2022 of the cells. Initially, Turbo does not know where any of the monsters are, but he knows that there is exactly one monster in each row except the first row and the last row, and that each column contains at most one monster.
Turbo makes a series of attempts to go from the first row to the last row. On each attempt, he chooses to start on any cell in the first row, then repeatedly moves to an adjacent cell sharing a common side. (He is allowed to return to a previously visited cell.) If he reaches a cell with a monster, his attempt ends and he is transported back to the first row to start a new attempt. The monsters do not move, and Turbo remembers whether or not each cell he has visited contains a monster. If he reaches any cell in the last row, his attempt ends and the game is over.
Determine the minimum value of \(n\) for which Turbo has a strategy that guarantees reaching the last row on the \(n^{\text{th}}\) attempt or earlier, regardless of the locations of the monsters.
Official text of the problem. Official problem paper (PDF)
Answer
\[ \boxed{n=3}. \]
Solution
Put \(m=2023\). Number the rows \(1,\ldots,m+1\) from top to bottom and the columns \(1,\ldots,m\) from left to right. Denote a cell by \((r,c)\).
Two attempts cannot suffice. Consider any proposed strategy. On its first attempt, let \((2,c)\) be the first cell Turbo enters in row \(2\). Place the monster of row \(2\) there, ending this attempt.
On the second attempt, Turbo must eventually enter row \(3\) to succeed. If he hits the known monster again, or never enters row \(3\), the proposed guarantee already fails. Otherwise, let \((3,d)\) be his first cell in row \(3\). He must enter it from \((2,d)\), so \(d\ne c\). Place the monster of row \(3\) at \((3,d)\), ending his second attempt.
Complete the placement by putting the monsters of rows \(4,\ldots,m\) in distinct columns other than \(c,d\). This is possible because there are \(m-3\) such rows and \(m-2\) available columns. These choices describe a single fixed legal placement: before either prescribed collision, Turbo has visited only cells whose contents have already been specified, so completing the placement does not change his actions. Thus no strategy guarantees success within two attempts.
Three attempts suffice. On his first attempt, Turbo starts at \((1,1)\), moves to \((2,1)\), and walks right along row \(2\) until he encounters its monster, say at \((2,c)\). He now knows that all other cells of row \(2\), and all other cells of column \(c\), are safe.
First suppose \(1<c<m\). On his second attempt, Turbo follows \[ (1,c-1),\quad (2,c-1),\quad (3,c-1). \] The only possible collision is at \((3,c-1)\). If that cell is safe, he moves right to \((3,c)\) and then straight down column \(c\) to the last row.
If instead \((3,c-1)\) contains a monster, then on his third attempt he follows \[ (1,c+1),\quad (2,c+1),\quad (3,c+1),\quad (3,c), \] and then goes straight down column \(c\). This route is safe: the monster in row \(2\) is at column \(c\), the monster in row \(3\) is at column \(c-1\), and column \(c\) has no further monster.
It remains to handle \(c=1\) or \(c=m\). By reflecting the board horizontally if necessary, we may assume \(c=1\).
On his second attempt, Turbo starts in column \(m\) and descends to row \(2\), which is safe there. He then processes rows \[ r=3,4,\ldots,m \] in order. In row \(r\), he enters at column \(m\), walks left through columns \[ m,m-1,\ldots,r, \] and, if he survives, returns to column \(m\) before proceeding to the next row.
We claim that whenever he reaches the scan of row \(r\), he knows that the monsters in all preceding monster rows are at \[ (2,1),(3,2),\ldots,(r-1,r-2). \] For \(r=3\), this is precisely what the first attempt established. Suppose it holds for some \(r\). Columns \(1,\ldots,r-2\) already contain monsters, so the monster in row \(r\) must be in one of columns \(r-1,\ldots,m\). If the scan through columns \(r,\ldots,m\) is safe, the monster must therefore be at \((r,r-1)\). This proves the claim inductively.
If all these scans are safe, Turbo reaches \((m,m)\) and steps down to \((m+1,m)\), succeeding on his second attempt.
Otherwise, suppose the second attempt ends at a monster \((r,d)\). By the scanning rule, \(d\ge r\), and all earlier monsters are at the positions in the displayed list. On his third attempt, Turbo follows the horizontal and vertical segments \[ (1,m) \longrightarrow (r-1,m) \longrightarrow (r-1,d-1) \longrightarrow (r,d-1) \longrightarrow (r,1) \longrightarrow (m+1,1), \] moving one cell at a time along each segment. Every segment is safe:
- In rows \(2,\ldots,r-1\), the monsters lie in columns \(1,\ldots,r-2\), so the initial descent in column \(m\) is safe.
- The monster in row \(r-1\) is at column \(r-2\). Since \(d-1\ge r-1\), the horizontal segment in that row avoids it.
- The monster in row \(r\) is at column \(d\). Entering that row at column \(d-1\) and walking left to column \(1\) avoids it.
- Column \(1\) contains its only monster in row \(2\), so the final descent from row \(r\ge3\) is safe.
Thus Turbo always succeeds by his third attempt. Together with the lower bound, this proves that the minimum is \(3\).
The solution was checked against the official IMO shortlist solutions.
IMO 2024 · Aufgabe 5
Die Schnecke Turbo spielt auf einem Brett mit 2024 Zeilen und 2023 Spalten. Auf 2022 Feldern befinden sich versteckte Monster. Zu Beginn weiß Turbo nicht, wo sich Monster befinden, aber sie weiß, dass es in jeder Zeile, außer der ersten und der letzten, genau ein Monster gibt und dass es in jeder Spalte höchstens ein Monster gibt.
Turbo unternimmt eine Reihe von Versuchen, von der ersten Zeile zur letzten Zeile zu gelangen. In jedem Versuch wählt sie ein Startfeld in der ersten Zeile und kriecht dann wiederholt auf ein Nachbarfeld mit einer gemeinsamen Seite. (Sie darf auf bereits besuchte Felder zurückkehren.) Wenn sie auf ein Feld mit einem Monster kommt, dann endet der Versuch und sie muss in der ersten Reihe einen neuen Versuch beginnen. Die Monster bleiben immer am selben Ort, und Turbo merkt sich für jedes besuchte Feld, ob dort ein Monster ist oder nicht. Wenn sie ein Feld in der letzten Zeile erreicht, dann endet ihr Versuch und das Spiel endet.
Man bestimme das kleinstmögliche \(n\), für das Turbo eine Strategie hat, sicher in höchstens \(n\) Versuchen die letzte Zeile zu erreichen, unabhängig von der Position der Monster.
Offizieller deutscher Aufgabentext. Offizielles Aufgabenblatt (PDF)
Antwort
\[ \boxed{n=3}. \]
Lösung
Wir setzen \(m=2023\). Wir nummerieren die Zeilen von oben nach unten mit \(1,\ldots,m+1\) und die Spalten von links nach rechts mit \(1,\ldots,m\). Ein Feld bezeichnen wir mit \((r,c)\).
Zwei Versuche können nicht genügen. Betrachten wir eine beliebige vorgeschlagene Strategie. Sei \((2,c)\) das erste Feld, das Turbo bei ihrem ersten Versuch in Zeile \(2\) betritt. Wir platzieren das Monster der Zeile \(2\) dort, womit dieser Versuch endet.
Beim zweiten Versuch muss Turbo irgendwann Zeile \(3\) betreten, um erfolgreich zu sein. Trifft sie erneut auf das bekannte Monster oder betritt sie Zeile \(3\) niemals, so scheitert die behauptete Garantie bereits. Andernfalls sei \((3,d)\) ihr erstes Feld in Zeile \(3\). Sie muss es von \((2,d)\) aus betreten, also gilt \(d\ne c\). Wir platzieren das Monster der Zeile \(3\) auf \((3,d)\), womit ihr zweiter Versuch endet.
Wir vervollständigen die Anordnung, indem wir die Monster der Zeilen \(4,\ldots,m\) in verschiedenen Spalten außer \(c,d\) platzieren. Dies ist möglich, da es \(m-3\) solche Zeilen und \(m-2\) verfügbare Spalten gibt. Diese Entscheidungen beschreiben eine einzige feste zulässige Anordnung: Vor jedem der beiden festgelegten Zusammenstöße hat Turbo nur Felder besucht, deren Inhalt bereits festgelegt wurde, sodass die Vervollständigung der Anordnung ihre Handlungen nicht verändert. Somit garantiert keine Strategie einen Erfolg innerhalb von zwei Versuchen.
Drei Versuche genügen. Bei ihrem ersten Versuch startet Turbo auf \((1,1)\), bewegt sich nach \((2,1)\) und geht entlang der Zeile \(2\) nach rechts, bis sie auf deren Monster trifft, etwa auf \((2,c)\). Sie weiß nun, dass alle anderen Felder der Zeile \(2\) und alle anderen Felder der Spalte \(c\) sicher sind.
Nehmen wir zunächst \(1<c<m\) an. Bei ihrem zweiten Versuch folgt Turbo dem Weg \[ (1,c-1),\quad (2,c-1),\quad (3,c-1). \] Der einzige mögliche Zusammenstoß ist auf \((3,c-1)\). Ist dieses Feld sicher, so bewegt sie sich nach rechts auf \((3,c)\) und dann gerade nach unten in Spalte \(c\) bis zur letzten Zeile.
Befindet sich dagegen auf \((3,c-1)\) ein Monster, so folgt sie bei ihrem dritten Versuch dem Weg \[ (1,c+1),\quad (2,c+1),\quad (3,c+1),\quad (3,c), \] und geht dann gerade nach unten in Spalte \(c\). Dieser Weg ist sicher: Das Monster in Zeile \(2\) befindet sich in Spalte \(c\), das Monster in Zeile \(3\) in Spalte \(c-1\), und Spalte \(c\) enthält kein weiteres Monster.
Es bleibt, die Fälle \(c=1\) und \(c=m\) zu behandeln. Durch Spiegelung des Bretts in horizontaler Richtung können wir nötigenfalls \(c=1\) annehmen.
Bei ihrem zweiten Versuch startet Turbo in Spalte \(m\) und geht nach unten bis zur Zeile \(2\), die dort sicher ist. Dann durchläuft sie die Zeilen \[ r=3,4,\ldots,m \] der Reihe nach. In Zeile \(r\) tritt sie in Spalte \(m\) ein, geht nach links durch die Spalten \[ m,m-1,\ldots,r, \] und kehrt, falls sie überlebt, zu Spalte \(m\) zurück, bevor sie zur nächsten Zeile weitergeht.
Wir behaupten, dass sie jedes Mal, wenn sie mit der Untersuchung der Zeile \(r\) beginnt, weiß, dass sich die Monster in allen vorausgehenden Monsterzeilen auf \[ (2,1),(3,2),\ldots,(r-1,r-2) \] befinden. Für \(r=3\) ist dies genau die Erkenntnis aus dem ersten Versuch. Angenommen, die Behauptung gilt für ein \(r\). Die Spalten \(1,\ldots,r-2\) enthalten bereits Monster, also muss das Monster der Zeile \(r\) in einer der Spalten \(r-1,\ldots,m\) sein. Ist die Untersuchung der Spalten \(r,\ldots,m\) sicher, so muss sich das Monster daher auf \((r,r-1)\) befinden. Dies beweist die Behauptung durch Induktion.
Sind alle diese Untersuchungen sicher, so erreicht Turbo \((m,m)\) und geht einen Schritt nach unten auf \((m+1,m)\), womit sie bei ihrem zweiten Versuch erfolgreich ist.
Andernfalls ende der zweite Versuch bei einem Monster auf \((r,d)\). Nach der Untersuchungsregel gilt \(d\ge r\), und alle vorherigen Monster befinden sich an den Stellen der angegebenen Liste. Bei ihrem dritten Versuch folgt Turbo den horizontalen und vertikalen Strecken \[ (1,m) \longrightarrow (r-1,m) \longrightarrow (r-1,d-1) \longrightarrow (r,d-1) \longrightarrow (r,1) \longrightarrow (m+1,1), \] wobei sie sich entlang jeder Strecke jeweils um ein Feld weiterbewegt. Jede Strecke ist sicher:
- In den Zeilen \(2,\ldots,r-1\) liegen die Monster in den Spalten \(1,\ldots,r-2\), also ist der anfängliche Weg nach unten in Spalte \(m\) sicher.
- Das Monster der Zeile \(r-1\) befindet sich in Spalte \(r-2\). Wegen \(d-1\ge r-1\) wird es auf der horizontalen Strecke in dieser Zeile vermieden.
- Das Monster der Zeile \(r\) befindet sich in Spalte \(d\). Wenn Turbo diese Zeile in Spalte \(d-1\) betritt und nach links bis zur Spalte \(1\) geht, vermeidet sie es.
- Spalte \(1\) enthält ihr einziges Monster in Zeile \(2\), also ist der abschließende Weg nach unten ab Zeile \(r\ge3\) sicher.
Somit ist Turbo immer spätestens bei ihrem dritten Versuch erfolgreich. Zusammen mit der unteren Schranke beweist dies, dass das Minimum \(3\) ist.
Die Lösung wurde mit den offiziellen Lösungen der IMO-Shortlist abgeglichen.
IMO 2024 · Soru 5
Salyangoz Turbo, 2024 satır ve 2023 sütundan oluşan bir satranç tahtasında bir oyun oynuyor. Tahtanın 2022 adet birim karesinde birer canavar saklanmıştır. Başlangıçta Turbo, hangi birim karelerde canavar bulunduğunu bilmiyor fakat ilk ve son satır dışındaki her satırda tam olarak bir canavar bulunduğunu ve her sütunda en fazla bir canavar bulunduğunu biliyor. Turbo, ilk satırdan son satıra ulaşmak için birkaç deneme yapıyor. Her bir denemede, ilk satırdaki istediği bir birim kareden başlıyor ve her adımda, bulunduğu birim kareyle ortak kenar paylaşan komşu bir birim kareye geçiyor (Turbo’nun daha önceden ziyaret ettiği bir birim kareye dönme hakkı vardır). Turbo, içinde canavar bulunan bir birim kareye ulaştığı an o anki denemesi sonlanıyor ve yeni bir denemeye başlamak için ilk satıra geri ışınlanıyor. Canavarlar yer değiştirmiyor ve Turbo, daha önceden ziyaret ettiği birim karelerde canavar olup olmadığını aklında tutuyor. Turbo, son satırdaki herhangi bir kareye ulaştığı an oyun bitiyor.
\(n\) sayısının en küçük hangi değeri için Turbo, canavarların tahtadaki konumları nasıl olursa olsun en fazla \(n\) deneme yaparak oyunu bitirmeyi garantileyebilir?
Sorunun resmi Türkçe metni. Resmi soru kâğıdı (PDF)
Cevap
\[ \boxed{n=3}. \]
Çözüm
\(m=2023\) olsun. Satırları yukarıdan aşağıya \(1,\ldots,m+1\), sütunları ise soldan sağa \(1,\ldots,m\) olarak numaralandıralım. Bir kareyi \((r,c)\) ile gösterelim.
İki deneme yeterli olamaz. Önerilen herhangi bir stratejiyi ele alalım. Turbo'nun ilk denemesinde \(2\). satırda girdiği ilk kare \((2,c)\) olsun. \(2\). satırın canavarını buraya yerleştirerek bu denemeyi sona erdirelim.
Turbo'nun başarılı olabilmesi için ikinci denemesinde eninde sonunda \(3\). satıra girmesi gerekir. Bilinen canavara yeniden çarparsa veya \(3\). satıra hiç girmezse, önerilen garanti zaten sağlanmaz. Aksi hâlde, \(3\). satırdaki ilk karesi \((3,d)\) olsun. Bu kareye \((2,d)\) karesinden girmesi gerektiğinden \(d\ne c\) olur. \(3\). satırın canavarını \((3,d)\) karesine yerleştirerek ikinci denemesini sona erdirelim.
\(4,\ldots,m\) satırlarının canavarlarını \(c,d\) dışındaki farklı sütunlara koyarak yerleşimi tamamlayalım. Böyle \(m-3\) satır ve kullanılabilecek \(m-2\) sütun bulunduğundan bu mümkündür. Bu seçimler, kurallara uygun tek bir sabit yerleşim tanımlar: belirlenen çarpışmaların her birinden önce Turbo yalnızca içerikleri zaten belirlenmiş kareleri ziyaret etmiştir; dolayısıyla yerleşimi tamamlamak onun hareketlerini değiştirmez. Böylece hiçbir strateji iki deneme içinde başarıyı garanti etmez.
Üç deneme yeterlidir. Turbo ilk denemesinde \((1,1)\) karesinden başlar, \((2,1)\) karesine geçer ve \(2\). satır boyunca sağa doğru ilerleyerek bu satırın canavarıyla, diyelim ki \((2,c)\) karesinde, karşılaşır. Artık \(2\). satırdaki diğer tüm karelerin ve \(c\) sütunundaki diğer tüm karelerin güvenli olduğunu bilir.
Önce \(1<c<m\) olduğunu varsayalım. Turbo ikinci denemesinde \[ (1,c-1),\quad (2,c-1),\quad (3,c-1) \] yolunu izler. Olası tek çarpışma \((3,c-1)\) karesindedir. Bu kare güvenliyse sağa, \((3,c)\) karesine geçer ve ardından \(c\) sütunu boyunca doğrudan aşağıya, son satıra iner.
Bunun yerine \((3,c-1)\) karesinde bir canavar varsa, üçüncü denemesinde \[ (1,c+1),\quad (2,c+1),\quad (3,c+1),\quad (3,c) \] yolunu izler ve ardından \(c\) sütunu boyunca doğrudan aşağıya iner. Bu yol güvenlidir: \(2\). satırdaki canavar \(c\) sütununda, \(3\). satırdaki canavar \(c-1\) sütunundadır ve \(c\) sütununda başka canavar yoktur.
Geriye \(c=1\) veya \(c=m\) durumları kalır. Gerekirse tahtayı yatay yönde yansıtarak \(c=1\) varsayabiliriz.
Turbo ikinci denemesinde \(m\) sütunundan başlar ve burada güvenli olan \(2\). satıra iner. Ardından \[ r=3,4,\ldots,m \] satırlarını sırayla ele alır. \(r\). satıra \(m\) sütunundan girer, sola doğru \[ m,m-1,\ldots,r \] sütunları boyunca ilerler ve canavara rastlamazsa sonraki satıra geçmeden önce \(m\) sütununa döner.
İddiamız, \(r\). satırı taramaya her ulaştığında, önceki tüm canavarlı satırlardaki canavarların \[ (2,1),(3,2),\ldots,(r-1,r-2) \] karelerinde olduğunu bildiğidir. \(r=3\) için bu, tam olarak ilk denemede elde edilen bilgidir. İddianın bir \(r\) için geçerli olduğunu varsayalım. \(1,\ldots,r-2\) sütunlarında zaten canavar bulunduğundan, \(r\). satırdaki canavar \(r-1,\ldots,m\) sütunlarından birinde olmalıdır. \(r,\ldots,m\) sütunlarının taranması güvenli geçerse canavar bu nedenle \((r,r-1)\) karesinde olmalıdır. Bu, iddiayı tümevarımla ispatlar.
Bu taramaların hepsi güvenli geçerse Turbo \((m,m)\) karesine ulaşır ve aşağıya, \((m+1,m)\) karesine geçerek ikinci denemesinde başarılı olur.
Aksi hâlde, ikinci denemenin \((r,d)\) karesindeki bir canavarda sona erdiğini varsayalım. Tarama kuralı gereği \(d\ge r\) olur ve önceki tüm canavarlar yukarıda gösterilen listedeki konumlardadır. Turbo üçüncü denemesinde \[ (1,m) \longrightarrow (r-1,m) \longrightarrow (r-1,d-1) \longrightarrow (r,d-1) \longrightarrow (r,1) \longrightarrow (m+1,1) \] yatay ve düşey parçalarını, her parça boyunca birer kare ilerleyerek izler. Her parça güvenlidir:
- \(2,\ldots,r-1\) satırlarındaki canavarlar \(1,\ldots,r-2\) sütunlarında olduğundan, \(m\) sütunundaki ilk iniş güvenlidir.
- \(r-1\). satırdaki canavar \(r-2\) sütunundadır. \(d-1\ge r-1\) olduğundan, bu satırdaki yatay parça canavara uğramaz.
- \(r\). satırdaki canavar \(d\) sütunundadır. Bu satıra \(d-1\) sütunundan girip sola, \(1\). sütuna kadar ilerlemek canavara uğramaz.
- \(1\). sütundaki tek canavar \(2\). satırdadır; dolayısıyla \(r\ge3\) satırından başlayan son iniş güvenlidir.
Böylece Turbo her zaman en geç üçüncü denemesinde başarılı olur. Alt sınırla birlikte bu, en küçük değerin \(3\) olduğunu ispatlar.
Çözüm, resmi IMO shortlist çözümleriyle karşılaştırılarak kontrol edildi.
IMO 2024 · Problema 5
El caracol Turbo juega un juego en un tablero con 2024 filas y 2023 columnas. En 2022 de las casillas del tablero se han escondido monstruos. Inicialmente, Turbo no sabe donde está ninguno de los monstruos, pero sabe que hay exactamente un monstruo en cada fila excepto en la primera y en la última fila, y que cada columna contiene a lo más un monstruo.
Turbo hace una serie de intentos para ir de la primera a la última fila. En cada intento, elige empezar en cualquier casilla de la primera fila y a continuación repetidamente se mueve a una casilla vecina con la que comparta un lado. (Le está permitido regresar a una casilla visitada previamente.) Si llega a una casilla con un monstruo, su intento termina y es transportado devuelta a la primera fila para comenzar un nuevo intento. Los monstruos no se mueven, y Turbo recuerda si en cada casilla visitada hay o no hay un monstruo. Si llega a una casilla de la última fila, su intento termina y el juego finaliza.
Determinar el menor valor de \(n\) para el cual Turbo tiene una estrategia que le garantiza llegar a la última fila en el \(n\)-ésimo intento o antes, independientemente de la ubicación de los monstruos.
Texto oficial en español del problema. Enunciado oficial (PDF)
Respuesta
\[ \boxed{n=3}. \]
Solución
Sea \(m=2023\). Numeramos las filas \(1,\ldots,m+1\) de arriba abajo y las columnas \(1,\ldots,m\) de izquierda a derecha. Denotamos una casilla por \((r,c)\).
Dos intentos no pueden bastar. Consideremos cualquier estrategia propuesta. En su primer intento, sea \((2,c)\) la primera casilla en la que Turbo entra en la fila \(2\). Colocamos allí el monstruo de la fila \(2\), terminando este intento.
En el segundo intento, Turbo debe entrar en algún momento en la fila \(3\) para tener éxito. Si vuelve a encontrarse con el monstruo conocido, o nunca entra en la fila \(3\), la garantía propuesta ya falla. En caso contrario, sea \((3,d)\) su primera casilla en la fila \(3\). Debe entrar en ella desde \((2,d)\), por lo que \(d\ne c\). Colocamos el monstruo de la fila \(3\) en \((3,d)\), terminando su segundo intento.
Completamos la distribución colocando los monstruos de las filas \(4,\ldots,m\) en columnas distintas de \(c,d\) y distintas entre sí. Esto es posible porque hay \(m-3\) filas de este tipo y \(m-2\) columnas disponibles. Estas elecciones describen una única distribución fija y válida: antes de cada uno de los dos encuentros prescritos, Turbo solo ha visitado casillas cuyo contenido ya se ha especificado, por lo que completar la distribución no cambia sus acciones. Por tanto, ninguna estrategia garantiza el éxito en a lo más dos intentos.
Tres intentos bastan. En su primer intento, Turbo empieza en \((1,1)\), se mueve a \((2,1)\) y camina hacia la derecha por la fila \(2\) hasta encontrarse con su monstruo, digamos en \((2,c)\). Ahora sabe que todas las demás casillas de la fila \(2\), y todas las demás casillas de la columna \(c\), son seguras.
Supongamos primero que \(1<c<m\). En su segundo intento, Turbo sigue el recorrido \[ (1,c-1),\quad (2,c-1),\quad (3,c-1). \] El único encuentro posible con un monstruo es en \((3,c-1)\). Si esa casilla es segura, se mueve a la derecha hasta \((3,c)\) y después baja directamente por la columna \(c\) hasta la última fila.
Si, en cambio, \((3,c-1)\) contiene un monstruo, entonces, en su tercer intento, sigue el recorrido \[ (1,c+1),\quad (2,c+1),\quad (3,c+1),\quad (3,c), \] y después baja directamente por la columna \(c\). Este recorrido es seguro: el monstruo de la fila \(2\) está en la columna \(c\), el monstruo de la fila \(3\) está en la columna \(c-1\), y la columna \(c\) no tiene ningún otro monstruo.
Queda tratar los casos \(c=1\) o \(c=m\). Invirtiendo el tablero de izquierda a derecha si es necesario, podemos suponer que \(c=1\).
En su segundo intento, Turbo empieza en la columna \(m\) y desciende hasta la fila \(2\), cuya casilla en esa columna es segura. Después recorre las filas \[ r=3,4,\ldots,m \] en orden. En la fila \(r\), entra por la columna \(m\), camina hacia la izquierda por las columnas \[ m,m-1,\ldots,r, \] y, si sobrevive, vuelve a la columna \(m\) antes de pasar a la siguiente fila.
Afirmamos que, siempre que llega a explorar la fila \(r\), sabe que los monstruos de todas las filas anteriores que contienen monstruos están en \[ (2,1),(3,2),\ldots,(r-1,r-2). \] Para \(r=3\), esto es precisamente lo que se estableció en el primer intento. Supongamos que se cumple para algún \(r\). Las columnas \(1,\ldots,r-2\) ya contienen monstruos, por lo que el monstruo de la fila \(r\) debe estar en una de las columnas \(r-1,\ldots,m\). Si la exploración de las columnas \(r,\ldots,m\) es segura, el monstruo debe estar, por tanto, en \((r,r-1)\). Esto demuestra la afirmación por inducción.
Si todas estas exploraciones son seguras, Turbo llega a \((m,m)\) y baja a \((m+1,m)\), teniendo éxito en su segundo intento.
En caso contrario, supongamos que el segundo intento termina en un monstruo \((r,d)\). Por la regla de exploración, \(d\ge r\), y todos los monstruos anteriores están en las posiciones de la lista mostrada. En su tercer intento, Turbo sigue los segmentos horizontales y verticales \[ (1,m) \longrightarrow (r-1,m) \longrightarrow (r-1,d-1) \longrightarrow (r,d-1) \longrightarrow (r,1) \longrightarrow (m+1,1), \] moviéndose una casilla cada vez a lo largo de cada segmento. Todos los segmentos son seguros:
- En las filas \(2,\ldots,r-1\), los monstruos están en las columnas \(1,\ldots,r-2\), por lo que el descenso inicial por la columna \(m\) es seguro.
- El monstruo de la fila \(r-1\) está en la columna \(r-2\). Como \(d-1\ge r-1\), el segmento horizontal en esa fila lo evita.
- El monstruo de la fila \(r\) está en la columna \(d\). Entrar en esa fila por la columna \(d-1\) y caminar hacia la izquierda hasta la columna \(1\) lo evita.
- La columna \(1\) contiene su único monstruo en la fila \(2\), por lo que el descenso final desde la fila \(r\ge3\) es seguro.
Por tanto, Turbo siempre tiene éxito a más tardar en su tercer intento. Junto con la cota inferior, esto demuestra que el mínimo es \(3\).
La solución se comprobó con las soluciones oficiales de la shortlist de la IMO.
IMO 2024 · 问题 5
憨豆特工在一个 \(2024\) 行 \(2023\) 列的方格表上做游戏。方格表中恰有 \(2022\) 个方格各藏有一个坏人。初始时,憨豆不知道坏人的位置,但是他知道除了第一行和最后一行之外,每行恰有一个坏人,且每列至多有一个坏人。
憨豆想从第一行移动到最后一行,并进行若干轮尝试。在每一轮尝试中,憨豆可以在第一行中任意选取一个方格出发并不断移动,他每次可以移动到与当前所在方格有公共边的方格内。(他允许移动到之前已经到达过的方格。)若憨豆移动到一个有坏人的方格,则此轮尝试结束,并且他被传送回第一行开始新的一轮尝试。坏人在整个游戏过程中不移动,并且憨豆可以记住每个他经过的方格内是否有坏人。若憨豆到达最后一行的任意一个方格,则游戏结束。
求最小的正整数 \(n\),使得不论坏人的位置如何分布,憨豆总有策略可以确保他能够经过不超过 \(n\) 轮尝试到达最后一行。
题目为官方中文译本。 官方试卷 (PDF)
答案
\[ \boxed{n=3}. \]
解答
令 \(m=2023\)。将各行自上而下编号为 \(1,\ldots,m+1\),各列自左而右编号为 \(1,\ldots,m\)。用 \((r,c)\) 表示一个方格。
两轮尝试不足以保证成功。考虑任意一个给定策略。在第一轮尝试中,设 \((2,c)\) 为憨豆进入第 \(2\) 行时首先到达的方格。将第 \(2\) 行的坏人放在那里,结束这一轮尝试。
在第二轮尝试中,憨豆若要成功,最终必须进入第 \(3\) 行。若他再次遇到已知的坏人,或者始终不进入第 \(3\) 行,则所声称的保证已经落空。否则,设 \((3,d)\) 为他在第 \(3\) 行首先到达的方格。他必从 \((2,d)\) 进入该格,因此 \(d\ne c\)。将第 \(3\) 行的坏人放在 \((3,d)\),结束他的第二轮尝试。
将第 \(4,\ldots,m\) 行的坏人放在除 \(c,d\) 外互不相同的列中,以完成布置。这是可行的,因为这样的行有 \(m-3\) 个,而可用的列有 \(m-2\) 个。这些选择给出了一个固定的合法布置:在两次指定的遭遇发生之前,憨豆访问过的都只是其内容已经确定的方格,因此补全布置不会改变他的行动。故没有任何策略能保证在两轮尝试内成功。
三轮尝试足以保证成功。在第一轮尝试中,憨豆从 \((1,1)\) 出发,移动到 \((2,1)\),再沿第 \(2\) 行向右走,直到遇到该行的坏人,设其位于 \((2,c)\)。现在他知道,第 \(2\) 行的所有其他方格以及第 \(c\) 列的所有其他方格都是安全的。
先设 \(1<c<m\)。在第二轮尝试中,憨豆依次经过 \[ (1,c-1),\quad (2,c-1),\quad (3,c-1). \] 唯一可能遇到坏人的位置是 \((3,c-1)\)。若该格安全,他就向右移动到 \((3,c)\),再沿第 \(c\) 列一直向下到达最后一行。
若 \((3,c-1)\) 中有坏人,则在第三轮尝试中,他依次经过 \[ (1,c+1),\quad (2,c+1),\quad (3,c+1),\quad (3,c), \] 然后沿第 \(c\) 列一直向下。这条路线是安全的:第 \(2\) 行的坏人在第 \(c\) 列,第 \(3\) 行的坏人在第 \(c-1\) 列,而第 \(c\) 列没有其他坏人。
还需处理 \(c=1\) 或 \(c=m\) 的情形。必要时将方格表左右翻转,便可设 \(c=1\)。
在第二轮尝试中,憨豆从第 \(m\) 列出发,向下走到第 \(2\) 行,该处是安全的。然后他依次处理以下各行: \[ r=3,4,\ldots,m \] 在第 \(r\) 行,他从第 \(m\) 列进入,向左依次经过各列 \[ m,m-1,\ldots,r, \] 若未遇到坏人,则返回第 \(m\) 列,再前往下一行。
我们断言,每当他开始扫描第 \(r\) 行时,他已经知道此前所有有坏人的行中的坏人分别位于 \[ (2,1),(3,2),\ldots,(r-1,r-2). \] 当 \(r=3\) 时,这正是第一轮尝试所确定的信息。假设断言对某个 \(r\) 成立。第 \(1,\ldots,r-2\) 列已有坏人,因此第 \(r\) 行的坏人必在第 \(r-1,\ldots,m\) 列中的某一列。若扫描第 \(r,\ldots,m\) 列时均安全,则坏人必位于 \((r,r-1)\)。由此归纳证明了该断言。
若所有这些扫描均安全,憨豆便会到达 \((m,m)\),再向下走一步到达 \((m+1,m)\),从而在第二轮尝试中成功。
否则,设第二轮尝试在遇到位于 \((r,d)\) 的坏人时结束。由扫描规则,\(d\ge r\),且此前所有坏人都位于上面列出的位置。在第三轮尝试中,憨豆沿以下水平和竖直线段行走 \[ (1,m) \longrightarrow (r-1,m) \longrightarrow (r-1,d-1) \longrightarrow (r,d-1) \longrightarrow (r,1) \longrightarrow (m+1,1), \] 在每条线段上每次移动一格。每条线段都是安全的:
- 在第 \(2,\ldots,r-1\) 行中,坏人位于第 \(1,\ldots,r-2\) 列,因此最初沿第 \(m\) 列向下走是安全的。
- 第 \(r-1\) 行的坏人在第 \(r-2\) 列。由于 \(d-1\ge r-1\),在该行沿水平线段行走不会遇到它。
- 第 \(r\) 行的坏人在第 \(d\) 列。从第 \(d-1\) 列进入该行,再向左走到第 \(1\) 列,不会遇到它。
- 第 \(1\) 列唯一的坏人在第 \(2\) 行,因此最后从第 \(r\ge3\) 行开始向下走是安全的。
因此,憨豆总能在第三轮尝试结束前成功。结合下界,便证明了最小值为 \(3\)。
解答已与 IMO 官方预选题(shortlist)解答核对。
IMO 2024 · Задача 5
Улитка Турбо играет на доске, имеющей 2024 ряда и 2023 столбца, в следующую игру. В 2022 клетках доски прячутся монстры. Изначально Турбо не знает, где находится какой-либо из монстров, но она знает, что в каждом ряду, кроме первого и последнего, есть ровно один монстр и что в каждом столбце находится не более одного монстра.
Турбо делает серию попыток, чтобы пройти из первого ряда в последний. При каждой попытке она может выбрать в качестве начальной любую клетку в первом ряду, а затем совершает серию перемещений из клетки в соседнюю клетку, имеющую общую сторону. (Ей разрешается возвращаться в ранее посещенные клетки.) Если она посещает клетку с монстром, то её попытка завершается, и она переносится обратно в первый ряд, чтобы начать новую попытку. Монстры не двигаются, а Турбо запоминает, есть ли в каждой посещенной ею клетке монстр. Если она достигнет любой клетки в последнем ряду, её попытка завершается и игра кончается.
Определите минимальное значение \(n\) такое, что у Турбо есть стратегия, которая, независимо от местонахождений монстров, гарантирует достижение последней строки за \(n\) попыток или раньше.
Официальный русский текст задачи. Официальный текст задач (PDF)
Ответ
\[ \boxed{n=3}. \]
Решение
Положим \(m=2023\). Пронумеруем ряды числами \(1,\ldots,m+1\) сверху вниз, а столбцы — числами \(1,\ldots,m\) слева направо. Будем обозначать клетку через \((r,c)\).
Двух попыток недостаточно. Рассмотрим любую предложенную стратегию. Пусть при первой попытке \((2,c)\) — первая клетка, в которую Турбо входит в ряду \(2\). Поместим туда монстра ряда \(2\), завершив эту попытку.
Чтобы добиться успеха во второй попытке, Турбо должна в какой-то момент войти в ряд \(3\). Если она снова попадает на известного монстра или так и не входит в ряд \(3\), то обещанная гарантия уже не выполняется. В противном случае пусть \((3,d)\) — её первая клетка в ряду \(3\). Она должна войти в неё из \((2,d)\), поэтому \(d\ne c\). Поместим монстра ряда \(3\) в \((3,d)\), завершив её вторую попытку.
Завершим расстановку, разместив монстров рядов \(4,\ldots,m\) в различных столбцах, отличных от \(c,d\). Это возможно, поскольку таких рядов \(m-3\), а доступных столбцов \(m-2\). Эти выборы задают одну фиксированную допустимую расстановку: до каждого из двух намеченных столкновений Турбо посещала только клетки, содержимое которых уже было определено, поэтому завершение расстановки не меняет её действий. Таким образом, никакая стратегия не гарантирует успеха за две попытки.
Трёх попыток достаточно. В первой попытке Турбо начинает в \((1,1)\), переходит в \((2,1)\) и идёт вправо по ряду \(2\), пока не встретит его монстра, скажем, в \((2,c)\). Теперь она знает, что все остальные клетки ряда \(2\) и все остальные клетки столбца \(c\) безопасны.
Сначала предположим, что \(1<c<m\). Во второй попытке Турбо идёт по клеткам \[ (1,c-1),\quad (2,c-1),\quad (3,c-1). \] Столкновение возможно только в \((3,c-1)\). Если эта клетка безопасна, она идёт вправо в \((3,c)\), а затем прямо вниз по столбцу \(c\) до последнего ряда.
Если же в \((3,c-1)\) находится монстр, то в третьей попытке она идёт по клеткам \[ (1,c+1),\quad (2,c+1),\quad (3,c+1),\quad (3,c), \] а затем прямо вниз по столбцу \(c\). Этот путь безопасен: монстр ряда \(2\) находится в столбце \(c\), монстр ряда \(3\) — в столбце \(c-1\), а в столбце \(c\) больше нет монстров.
Остаётся разобрать случаи \(c=1\) и \(c=m\). При необходимости отразив доску слева направо, можно считать, что \(c=1\).
Во второй попытке Турбо начинает в столбце \(m\) и спускается в ряд \(2\), где клетка этого столбца безопасна. Затем она обследует ряды \[ r=3,4,\ldots,m \] по порядку. В ряд \(r\) она входит в столбце \(m\), идёт влево по столбцам \[ m,m-1,\ldots,r, \] и, если не встречает монстра, возвращается в столбец \(m\), прежде чем перейти в следующий ряд.
Утверждаем, что всякий раз, когда она приступает к обследованию ряда \(r\), ей известно, что монстры во всех предыдущих рядах с монстрами находятся в клетках \[ (2,1),(3,2),\ldots,(r-1,r-2). \] При \(r=3\) это в точности то, что было установлено в первой попытке. Предположим, что утверждение верно для некоторого \(r\). Столбцы \(1,\ldots,r-2\) уже содержат монстров, поэтому монстр ряда \(r\) должен находиться в одном из столбцов \(r-1,\ldots,m\). Если обследование столбцов \(r,\ldots,m\) проходит безопасно, то монстр обязательно находится в \((r,r-1)\). Это доказывает утверждение по индукции.
Если все эти обследования проходят безопасно, Турбо достигает \((m,m)\) и делает шаг вниз в \((m+1,m)\), добиваясь успеха во второй попытке.
В противном случае пусть вторая попытка заканчивается на монстре \((r,d)\). По правилу обследования \(d\ge r\), а все предыдущие монстры находятся в позициях из приведённого списка. В третьей попытке Турбо движется по горизонтальным и вертикальным отрезкам \[ (1,m) \longrightarrow (r-1,m) \longrightarrow (r-1,d-1) \longrightarrow (r,d-1) \longrightarrow (r,1) \longrightarrow (m+1,1), \] перемещаясь по каждому отрезку на одну клетку за шаг. Каждый отрезок безопасен:
- В рядах \(2,\ldots,r-1\) монстры находятся в столбцах \(1,\ldots,r-2\), поэтому начальный спуск по столбцу \(m\) безопасен.
- Монстр ряда \(r-1\) находится в столбце \(r-2\). Поскольку \(d-1\ge r-1\), горизонтальный отрезок в этом ряду его обходит.
- Монстр ряда \(r\) находится в столбце \(d\). Вход в этот ряд в столбце \(d-1\) и движение влево до столбца \(1\) позволяют его обойти.
- Единственный монстр столбца \(1\) находится в ряду \(2\), поэтому заключительный спуск из ряда \(r\ge3\) безопасен.
Таким образом, Турбо всегда добивается успеха не позднее третьей попытки. Вместе с нижней оценкой это доказывает, что минимум равен \(3\).
Решение проверено по официальным решениям шортлиста IMO.
IMO 2024 · المسألة 5
يلعب الحلزون توربو لعبة على رقعة تحتوي على \(2024\) صفاً و \(2023\) عموداً. هناك وحوش مخفية في \(2022\) من الخلايا. في البداية، لا يعرف توربو مكان أي من الوحوش، ولكنه يعرف أن هناك وحشاً واحداً بالضبط في كل صف باستثناء الصف الأول والصف الأخير، وأن كل عمود يحتوي على وحش واحد على الأكثر.
يقوم توربو بمحاولات متتالية للانتقال من الصف الأول إلى الصف الأخير. في كل محاولة، يختار البدء في أي خلية في الصف الأول، ثم ينتقل بشكل متكرر إلى خلية مجاورة تشترك في ضلع مشترك. (يسمح له بالعودة إلى خلية زارها من قبل). إذا وصل إلى خلية بها وحش، تنتهي محاولته ويتم نقله مرة أخرى إلى الصف الأول لبدء محاولة جديدة. الوحوش لا تتحرك، وتوربو يتذكر ما إذا كانت كل خلية زارها تحتوي على وحش أم لا. إذا وصل إلى أي خلية في الصف الأخير، تنتهي محاولته وتنتهي اللعبة.
حدد القيمة الصغرى لـ \(n\) التي يمتلك توربو استراتيجية تضمن الوصول إلى الصف الأخير في المحاولة رقم \(n\) أو قبلها، بغض النظر عن مواقع الوحوش.
نص المسألة هو الترجمة العربية الرسمية. ورقة المسائل الرسمية (PDF)
الإجابة
\[ \boxed{n=3}. \]
الحل
نضع \(m=2023\). نرقّم الصفوف \(1,\ldots,m+1\) من الأعلى إلى الأسفل والأعمدة \(1,\ldots,m\) من اليسار إلى اليمين. نرمز إلى الخلية بـ \((r,c)\).
لا يمكن أن تكفي محاولتان. لننظر في أي استراتيجية مقترحة. في المحاولة الأولى، لتكن \((2,c)\) أول خلية يدخلها توربو في الصف \(2\). نضع وحش الصف \(2\) فيها، فتنتهي هذه المحاولة.
في المحاولة الثانية، لا بد أن يدخل توربو الصف \(3\) في نهاية المطاف كي ينجح. إذا اصطدم بالوحش المعروف مرة أخرى، أو لم يدخل الصف \(3\) أبداً، فإن الضمان المقترح يفشل بالفعل. وإلا، فلتكن \((3,d)\) أول خلية له في الصف \(3\). لا بد أن يدخلها من \((2,d)\)، ولذلك \(d\ne c\). نضع وحش الصف \(3\) في \((3,d)\)، فتنتهي محاولته الثانية.
نكمل توزيع الوحوش بوضع وحوش الصفوف \(4,\ldots,m\) في أعمدة مختلفة غير \(c,d\). وهذا ممكن لأن عدد هذه الصفوف هو \(m-3\)، وعدد الأعمدة المتاحة هو \(m-2\). تصف هذه الاختيارات توزيعاً واحداً ثابتاً يحقق الشروط: فقبل كل من الاصطدامين المحددين، لم يزر توربو إلا خلايا سبق تحديد محتوياتها، ولذلك لا يغير إكمال التوزيع تصرفاته. إذن لا توجد استراتيجية تضمن النجاح خلال محاولتين.
ثلاث محاولات تكفي. في المحاولة الأولى، يبدأ توربو من \((1,1)\)، وينتقل إلى \((2,1)\)، ويسير يميناً على طول الصف \(2\) حتى يصادف وحشه، وليكن عند \((2,c)\). يعرف الآن أن جميع الخلايا الأخرى في الصف \(2\)، وجميع الخلايا الأخرى في العمود \(c\)، آمنة.
لنفترض أولاً أن \(1<c<m\). في المحاولة الثانية، يسلك توربو المسار \[ (1,c-1),\quad (2,c-1),\quad (3,c-1). \] الاصطدام الوحيد الممكن هو عند \((3,c-1)\). إذا كانت هذه الخلية آمنة، فإنه يتحرك يميناً إلى \((3,c)\) ثم ينزل مباشرة في العمود \(c\) إلى الصف الأخير.
أما إذا كانت \((3,c-1)\) تحتوي على وحش، فإنه يسلك في المحاولة الثالثة المسار \[ (1,c+1),\quad (2,c+1),\quad (3,c+1),\quad (3,c), \] ثم ينزل مباشرة في العمود \(c\). هذا المسار آمن: فوحش الصف \(2\) يقع في العمود \(c\)، ووحش الصف \(3\) يقع في العمود \(c-1\)، ولا يوجد وحش آخر في العمود \(c\).
يبقى أن نعالج حالتي \(c=1\) أو \(c=m\). بعكس الرقعة أفقياً عند الحاجة، يمكننا افتراض \(c=1\).
في المحاولة الثانية، يبدأ توربو في العمود \(m\) وينزل إلى الصف \(2\)، وهو آمن في ذلك العمود. ثم يتفحص الصفوف \[ r=3,4,\ldots,m \] بالترتيب. في الصف \(r\)، يدخل عند العمود \(m\)، ويسير يساراً عبر الأعمدة \[ m,m-1,\ldots,r, \] وإذا نجا، يعود إلى العمود \(m\) قبل الانتقال إلى الصف التالي.
ندعي أنه كلما بلغ مرحلة تفحص الصف \(r\)، فإنه يعرف أن الوحوش في جميع الصفوف السابقة التي تحتوي على وحوش تقع عند \[ (2,1),(3,2),\ldots,(r-1,r-2). \] عندما \(r=3\)، فهذا بالضبط ما أثبتته المحاولة الأولى. لنفترض أن ذلك صحيح لبعض \(r\). تحتوي الأعمدة \(1,\ldots,r-2\) بالفعل على وحوش، ولذلك لا بد أن يكون وحش الصف \(r\) في أحد الأعمدة \(r-1,\ldots,m\). فإذا كان المرور عبر الأعمدة \(r,\ldots,m\) آمناً، فلا بد أن يكون الوحش عند \((r,r-1)\). وهذا يثبت الادعاء بالاستقراء.
إذا كانت جميع عمليات التفحص هذه آمنة، فإن توربو يصل إلى \((m,m)\) ويخطو إلى الأسفل نحو \((m+1,m)\)، فينجح في محاولته الثانية.
وإلا، فلنفترض أن المحاولة الثانية تنتهي عند وحش في \((r,d)\). بحسب قاعدة التفحص، لدينا \(d\ge r\)، وجميع الوحوش السابقة تقع في المواضع الواردة في القائمة المعروضة. في المحاولة الثالثة، يتبع توربو المقاطع الأفقية والرأسية \[ (1,m) \longrightarrow (r-1,m) \longrightarrow (r-1,d-1) \longrightarrow (r,d-1) \longrightarrow (r,1) \longrightarrow (m+1,1), \] متحركاً خلية واحدة في كل خطوة على طول كل مقطع. كل مقطع آمن:
- في الصفوف \(2,\ldots,r-1\)، تقع الوحوش في الأعمدة \(1,\ldots,r-2\)، ولذلك فإن النزول الأول في العمود \(m\) آمن.
- يقع وحش الصف \(r-1\) في العمود \(r-2\). وبما أن \(d-1\ge r-1\)، فإن المقطع الأفقي في ذلك الصف يتجنبه.
- يقع وحش الصف \(r\) في العمود \(d\). والدخول إلى ذلك الصف عند العمود \(d-1\) والسير يساراً إلى العمود \(1\) يتجنبانه.
- يحتوي العمود \(1\) على وحشه الوحيد في الصف \(2\)، ولذلك فإن النزول الأخير من الصف \(r\ge3\) آمن.
إذن ينجح توربو دائماً في موعد لا يتجاوز محاولته الثالثة. ومع الحد الأدنى الذي أثبتناه، يثبت ذلك أن القيمة الصغرى هي \(3\).
تمت مراجعة الحل بمقارنته بالحلول الرسمية لقائمة IMO المختصرة.