Hide

Problem D
Kvadranter

Antag att du har ett papper, och delar in det i 4 kvadranter, och sedan namnger varje kvadrant, så här:

\includegraphics[width=8cm]{quadrant1.jpg}

Vi kan nu upprepa denna process och dela in varje kvadrant i del-kvadranter, och sedan namnge varje del-kvadrant så här:

\includegraphics[width=8cm]{quadrant2.jpg}

och ytterligare en gång:

\includegraphics[width=8cm]{quadrant3.jpg}

osv. Om vi upprepar denna process $n$ gånger så kommer vi ha delat in papperet i $4^ n$ rutor. Varje ruta kommer att ha ett namn som är en sekvens av $n$ siffror.

Vi är nu intresserade av att veta vilken ruta som ligger $x$ steg till höger och $y$ steg ovanför en given ruta. Om vi har delat papperet i kvadranter 2 gånger (och alltså fått 16 rutor), och t.ex. utgår från 1.3 och går 2 steg till höger och 2 steg uppåt så hamnar vi i rutan 4.3. Om vi utgår från 1.3 och går 0 steg till höger och -1 steg uppåt (dvs 1 steg nedåt) så hamnar vi i 1.1.

Om vi har delat papperet 3 gånger (och alltså fått 64 rutor), startar i 4.1.4, och förflyttar oss -3 steg till höger (3 steg till vänster) så hamnar vi i 3.2.3. Om vi förflyttar oss 5 steg uppåt så hamnar vi utanför papperet.

Indata

Indata består av en sträng som utgör namnet på rutan (dvs ett antal siffror med punkter emellan, som i exemplen ovan), och två heltal $x$ och $y$ som anger hur många steg vi vill gå åt höger respektive uppåt. Du kan förutsätta att $x$ och $y$ ligger mellan $-10\, 000$ och $10\, 000$ (inklusivt).

Notera att längden på namnet på rutan anger hur många gånger vi har delat in papperet: Om namnet innehåller $n$ siffror så har vi delat in pappret i $4^ n$ rutor.

Utdata

Utdata ska bestå av en enda sträng som anger namnet på den ruta man hamnar i efter förflyttningen, eller strängen “outside” om vi hamnar utanför papperet.

Sample Input 1 Sample Output 1
1.3
2 2
4.3
Sample Input 2 Sample Output 2
4.1.4
-3 0
3.2.3
Sample Input 3 Sample Output 3
4.1.4
0 5
outside
Sample Input 4 Sample Output 4
4.1.4.1.4
-15 -15
1.1.4.4.1

Please log in to submit a solution to this problem

Log in