Problem B
Worm Worries
Languages
de
en
et
is
lt
lv
no
pl
ru
sv
Du leter etter en posisjon i jorden hvor du kan plassere
kjæle-marken din, Maximus. Du avgrenser søket ditt til en
boks-formet region med dimensioner
Maximus elsker fuktige områder, så du må plassere ham i en
celle som er minst like fuktig som alle nabo-cellene, ellers
vil han gå vekk og du vil neppe finne ham igjen. Med andre ord
må du plassere Maximus i et lokalt maximum. Mer presist trenger
du å finne en celle
Her tolker vi en verdi til å være 0 om punktet man spør om fuktigheten til ligger utenfor boksen (fordi Maximus absolutt vil holde seg inni boksen).
Antallet celler kan være veldig stort, så du ønsker ikke å måle fuktigheten i alle cellene. Derfor kan du i denne oppgaven interagere med graderen (English: “the grader”) og spørre om fuktigheten i ett gitt punkt. Når du har funnet en passende posisjon for Maximus, gi den posisjonen til graderen.
Interaktivitet
Den første linjen i inputtet inneholder fire positive
heltall:
Etter dette kan du skrive maks
Etter alle disse linjene må programmet ditt skrive ut
nøyaktig en linje på formen “! x y z”
og terminere. Med dette påstås det at punktet
Alle verdier av
Du må forsikre deg om å flushe (engelsk: flush) standard output før du leser graderens respons. Ellers vil ditt program få tilbakemeldingen “Time Limit Exceeded”. Dette virker som følger i språkene som støttes:
-
Java: System.out.println() flusher automatisk.
-
Python: print() flusher automatisk.
-
C++: cout << endl; flusher, og legger til en newline/ny linje. Hvis du benytter printf, fflush(stdout).
-
Pascal: Flush(Output).
For å hjelpe til med denne interageringen tilbyr vi en kode-snutt som du kan kopiere inn i programmet ditt. En link til denne kode-snutten for alle støttede språk (C++, Pascal, Java, Python) kan finnes i sidebaren på Kattis problem-siden. Denne kode-snutten benytter også raske input/output rutiner, som kan være nyttig for Python og Java (kun relevant for de to siste test-gruppene).
Graderen vil være ikke-adaptiv i den forstand at hver test-case har en fikset mengde fuktighetsverdier. Disse avhenger ikke av hvilke målinger programmet utfører.
Begrensninger
Løsningen din vil bli testet på et sett av testgrupper, hver verdt et visst antall poeng. Hver testgruppe inneholder et sett av tester. For å få poeng for en testgruppe må du løse alle testene i den gruppen. Din endelige poengsum vil være den høyeste poengsummen du har fått på en enkelt innlevering.
Group |
Points |
Limits |
1 |
10 |
|
2 |
22 |
|
3 |
12 |
|
4 |
19 |
|
5 |
14 |
|
6 |
23 |
|
Sample dialogue
I Kattis finnes det ett eksempel test case. I dette
eksempelet har boksen dimensjoner
Under er en eksempel-dialog, hvor linjene som starter med “JUDGE” er output av Kattis (altså i praksis input til ditt program), og linjene som starter med YOU er ditt program sitt output.
Siden
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