Problem B
Mask-omsorg
Languages
de
en
et
is
lt
lv
no
pl
ru
sv
Du letar efter en plats i jorden att lägga din tama mask,
Maximus. Du begränsar ditt letande till ett rätblock med
dimensionerna
Maximus älskar fuktiga platser, så du måste placera honom i
en cell som är minst lika fuktig som dess angränsande celler,
annars kravlar han iväg och du får problem att hitta honom. Med
andra ord ska du placera Maximus i ett lokalt maximum. Mer
preciserat: du ska finna en cell
där ett värde anses som
Antalet celler kan dock vara väldigt stort, så du vill inte mäta fuktigheten i alla celler. Därför kan du i den här uppgiften interagera med Kattis och fråga efter fuktigheten i vissa celler. När du har hittat en lämplig placering åt Maximus, ange denna plats till Kattis.
Interaktivitet
Den första raden av indata innehåller fyra positiva heltal:
Efter detta kan du skriva högst
Efter alla dessa rader, måste ditt program skriva ut exakt
en rad på formen “! x y z”, och
direkt avslutas. Detta påstår att celllen
Alla värden på
Du måste se till att flusha standard output innan du läser Kattis svar, annars kommer körningen bedömas som Time Limit Exceeded. Så här fungerar detta i de olika språken:
-
Java: System.out.println() flushar automatiskt.
-
Python: print() flushar automatiskt.
-
C++: cout << endl; flushar, utöver att skriva ny rad. Om du använder printf, fflush(stdout).
-
Pascal: Flush(Output).
För att hjälpa till att hantera den här interaktionen, tillhandahåller vi hjälpkod som du kan kopiera in i ditt program. Länk till den koden för alla supportade språk (C++, Pascal, Java, Python) finns i sidebaren till Kattis problemsida. Denna hjälpkod använder också snabba input/output-rutiner, vilket kan vara viktigt om du skriver i Java eller Python (endast relevant för de två sista testgrupperna).
Kattis kommer att vara icke-adaptiv; d.v.s. varje testfall kommer att ha en fix uppsättning fuktighetsvärden som inte beror på vilka mätningar programmet efterfrågar.
Begränsningar
Din lösning kommer att testas på en uppsättning testgrupper, var och en värd en viss poäng. Varje testgrupp innehåller flera testfall. För att få poäng för en testgrupp måste du klara alla testfallen i gruppen. Din slutgiltiga poäng på problemet kommer att vara den maximala poängen av en enda submission.
Grupp |
Poäng |
Gränser |
1 |
10 |
|
2 |
22 |
|
3 |
12 |
|
4 |
19 |
|
5 |
14 |
|
6 |
23 |
|
Exempel dialog
På Kattis finns det ett sample testfall. I detta testfall
har rätblocket dimensionerna
Nedan är ett exempel på dialog, där raderna som föregås av JUDGE är utskriften från Kattis, dvs indatan till ditt program, och raderna som föregås av YOU är ditt programs utskrift.
Eftersom
JUDGE: 3 1 1 3 YOU: ? 3 1 1 JUDGE: 13 YOU: ? 2 1 1 JUDGE: 14 YOU: ? 1 1 1 JUDGE: 10 YOU: ! 2 1 1