Á¦ 9ȸ´Â 1997³â 12¿ù 1ÀϺÎÅÍ 7ÀϱîÁö ³²¾ÆÇÁ¸®Ä«°øȱ¹ ÄÉÀÌÇÁŸ¿î¿¡¼ ¿·È´Ù. ´ç½Ã·Î¼´Â ¿ª´ë IOI»ç»ó ¹®Á¦ ³À̵µ°¡ °¡Àå ³ô¾Ò´Ù. ÀÌ ¶§ ¹®Á¦ÀÇ °æÇâÀÌ Å©°Ô ¹Ù²î¾ú´Ù. ´ÙÀ̳ª¹Í, ¹éÆ®·¡Å·°ú °°Àº ¹æ¹ýÀ¸·Î ÃÖÀûÇظ¦ ±¸ÇÏ´Â ÀüÇüÀûÀÎ ¿Ã¸²ÇÇ¾Æµå ¹®Á¦ °æÇâÀ» Å»ÇÇÇÏ¿©, ¸ðµç °æ¿ì¸¦ °í·ÁÇÒ ¼ö ¾ø¾î ±Ù»çÇØÀ» ±¸ÇØ¾ß ÇÏ´Â ¹®Á¦°¡ ³ª¿À°í, ÄÁÅ×ÀÌ³Ê ½Ã¹Ä·¹À̼Ç, Çí½º °ÔÀÓ °°Àº ȹ±âÀûÀÎ ¼ÒÀçÀÇ ¹®Á¦°¡ ÃâÁ¦µÆ´Ù. Á¡¼öµµ Àý´ëÀûÀÎ ¼öÄ¡°¡ ¾Æ´Ñ ¾Ë·ÁÁø ÃÖÀû Á¤´ä°úÀÇ ºñÀ²·Î °è»êµÇ¾ú´Ù. ¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇÏ´Â ÀÎÅÍ·ºÆ¼ºê ¹®Á¦°¡ µÎ °³ ³ª¿Ô´Ù. (¶óÀ̺귯¸®´Â ÁÖÃÖÃø¿¡¼ ¸¶·ÃÇϸç, °æ½Ã ±â°£ µ¿¾È¿¡´Â ÀÌ ¶óÀ̺귯¸®ÀÇ ¼Ò½º¸¦ º¼ ¼ö ¾ø´Ù.)
¿ø¹®ÀÌ ÀÖ´Â °÷: http://olympiads.win.tue.nl/ioi/ioi97/contest/index.html
¾ÕÀ¸·Î ȼºÀ» Ž»çÇÒ ¸ñÀûÀ¸·Î ȼº Ž»çÂ÷¸¦ ¿©·¯ ´ë ½ÇÀº ¿ìÁÖ¼±ÀÌ È¼º Ç¥¸é¿¡ Âø·úÇÒ ¿¹Á¤ÀÌ´Ù. ¸ðµç Ž»çÂ÷´Â ¿ìÁÖ¼±ÀÌ Âø·úÇÏ´Â ´ë·Î ¹ÛÀ¸·Î ³ª¿Í, °Å±â¼ ¾ó¸¶ ¾È ¶³¾îÁø ¶Ç´Ù¸¥ °÷¿¡ Âø·úÇÑ ¼Û½Å±â·Î ¿òÁ÷ÀδÙ. Ž»çÂ÷´Â °Å±â·Î °¡´Â µ¿¾È ȼºÀÇ ¾Ï¼®µéÀ» °ßº»À¸·Î äÁýÇÏ°Ô µÈ´Ù. ÇϳªÀÇ ¾Ï¼®Àº ÇÑ ¹ø ÁÖ¿ö °¡¸é ³¡À̱⠶§¹®¿¡ ±× À§Ä¡¿¡ ÃÖÃÊ·Î µµÂøÇϴ Ž»çÂ÷°¡ ÇÑ ¹ø¸¸ äÁýÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ¾Ï¼®ÀÌ ¾ø¾îÁø À§Ä¡¿¡ ´Ù¸¥ Ž»çÂ÷°¡ ´Ù½Ã Áö³ª°¥ ¼ö´Â ÀÖ´Ù. ´Ü ±æÀÌ ÇèÇÑ °÷Àº Áö³ª°¡Áö ¸øÇÑ´Ù. ¶ÇÇÑ Å½»çÂ÷´Â ¼Û½Å±â°¡ ÀÖ´Â µ¿³²ÂÊÀ» ÇâÇØ µ¿ÂÊ ¶Ç´Â ³²ÂÊÀ¸·Î °ÝÀÚ ¸ð¾ç´ë·Î¸¸ ¿òÁ÷ÀÏ ¼ö ÀÖ´Ù. ÇÑ À§Ä¡¿¡ ¿©·¯ Ž»çÂ÷°¡ °°ÀÌ ÀÖÀ» ¼öµµ ÀÖ´Ù.
ÁÖÀÇ: ¾î¶² Ž»çÂ÷°¡ ÇèÇÑ ±æ¿¡ µÑ·¯½Î¿© µ¿ÂÊ, ³²Âʸ¸À¸·Î´Â µµÀúÈ÷ ´õ ³ª¾Æ°¥ ¼ö ¾ø°Ô µÇ¸é, ±× Â÷¿Í ÀÌÁ¦±îÁö ±× Â÷°¡ äÁýÇß´ø ¾Ï¼® Ç¥º»Àº ¸ðµÎ ÀÒ°Ô µÇ¸ç, ±× ¾Ï¼®Àº ´Ù¸¥ Â÷°¡ ´Ù½Ã äÁýÇÒ ¼ö ¾ø´Ù.
Ž»çÂ÷µéÀÌ °¡Àå ¸¹Àº ¾Ï¼®À» ¸ðÀ¸°í ÃÖ´ëÇÑ ¼Û½Å±â¿¡ ¹«»çÈ÷ µµÂøÇÏ·Á¸é À̵éÀÌ ¾î¶»°Ô ¿òÁ÷¿©¾ß ÇÏ´ÂÁö Ž»çÂ÷ °¢°¢ÀÇ µ¿ÀÛÀ» °è»êÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇ϶ó.
¿ìÁÖ¼±°ú ¼Û½Å±â »çÀÌÀÇ È¼º Ç¥¸éÀº P¡¿Q Å©±âÀÇ ¹è¿·Î ±¸ÇöµÈ´Ù. ¿ìÁÖ¼±ÀÇ ÁÂÇ¥´Â ¾ðÁ¦³ª (1, 1)ÀÌ°í ¼Û½Å±âÀÇ ÁÂÇ¥´Â (P, Q)ÀÌ´Ù. ȼºÀÇ ÁöÇüÀº ´ÙÀ½°ú °°ÀÌ Á¤ÀǵȴÙ.
ÀÔ·Â ÆÄÀÏÀº ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÈ´Ù.
Ž»çÂ÷ÀÇ ´ë¼ö
P
Q
(X1Y1) (X2Y1) (X3Y1)...(XP-1Y1)
(XPY1)
(X1Y2) (X2Y2) (X3Y2)...(XP-1Y2)
(XPY2)
(X1Y3) (X2Y3) (X3Y3)...(XP-1Y3)
(XPY3)
...
(X1YQ-1) (X2YQ-1) (X3YQ-1)...(XP-1YQ-1)
(XPYQ-1)
(X1YQ) (X2YQ) (X3YQ)...(XP-1YQ)
(XPYQ)
P¿ÍQ ´Â ÁöµµÀÇ Å©±âÀ̸ç, Ž»çÂ÷ ´ë¼ö´Â 1000 ÀÌÇÏÀÇ Á¤¼öÀÌ´Ù. Q°³ÀÇ ÁÙ¿¡ ȼº Ç¥¸é Á¤º¸°¡ µé¾î°£´Ù. P¿Í Q´Â 255¸¦ ³ÑÁö ¾Ê´Â´Ù.
ÀÔ·Â ÆÄÀÏÀÇ ¿¹ (MARS.DAT)
2 ¡ç Ž»çÂ÷ ¼ö 10 ¡ç P Å©±â 8 ¡ç Q Å©±â 0 0 0 0 0 0 0 0 0 0 ¡ç 1° ÁÙ 0 0 0 0 0 1 1 0 0 0 ¡ç 2° ÁÙ 0 0 0 1 0 2 0 0 0 0 ¡ç 3° ÁÙ 1 1 0 1 2 0 0 0 0 1 ¡ç 4° ÁÙ 0 1 0 0 2 0 1 1 0 0 ¡ç 5° ÁÙ 0 1 0 1 0 0 1 1 0 0 ¡ç 6° ÁÙ 0 1 2 0 0 0 0 1 0 0 ¡ç 7° ÁÙ 0 0 0 0 0 0 0 0 0 0 ¡ç 8° ÁÙ
¾î¶² Ž»çÂ÷°¡ ¼Û½Å±â¸¦ ÇâÇØ ¾î¶»°Ô ¿òÁ÷ÀÏÁö¸¦ ¿¬¼ÓÇؼ Ãâ·ÂÇÏ¸é µÈ´Ù. °¢ ÁÙ¿¡´Â Ž»çÂ÷ ¹øÈ£¿Í 0 ¶Ç´Â 1ÀÇ ¼ýÀÚ°¡ µé¾î°£´Ù. 0Àº ³²ÂÊÀ¸·Î, 1Àº µ¿ÂÊÀ¸·Î ¿òÁ÷¿©¶ó´Â ¶æÀÌ´Ù.
Ãâ·ÂÀÇ ¿¹ (MARS.OUT)
1 1 ¡ç 1¹ø Â÷°¡ µ¿ÂÊÀ¸·Î À̵¿ 1 0 ¡ç 1¹ø Â÷°¡ ³²ÂÊÀ¸·Î À̵¿ 2 1 ¡ç 2¹ø Â÷°¡ µ¿ÂÊÀ¸·Î À̵¿ 2 0 ¡ç 2¹ø Â÷°¡ ³²ÂÊÀ¸·Î À̵¿ 1 1 1 1 2 0 2 0 1 0 1 0 2 1 1 1 2 1 2 1 2 0 2 0 1 1 1 0 1 0 1 1 1 1 2 1 2 1 2 1 2 0 1 0 1 0 2 0 1 1 1 1 2 1 2 1
Çí½º °ÔÀÓÀÇ ¸ñÇ¥´Â, °ÔÀÓÀ» ¸»À» ¸ÕÀú µÎ±â ½ÃÀÛÇÑ µÚ, ¸»À» 1¿ºÎÅÍ N¿±îÁö ´Ã¾î³õ¾Æ ¿¬°áÇÏ´Â °ÍÀÌ´Ù.
Çí½º´Â À°°¢ÇüÀÌ N¡¿N Å©±âÀÇ ¸¶¸§¸ð²Ã ¸ð¾çÀ¸·Î ±¸¼ºµÈ °ÔÀÓÆÇ¿¡¼ µÎ ¸íÀÌ ÇÏ´Â Àü·« °ÔÀÓÀÌ´Ù. N=6ÀÏ ¶§ °ÔÀÓÆÇ ¸ð¾çÀº ¾Æ·¡¿Í °°´Ù.
Çí½º °ÔÀÓÀ» ÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇ϶ó.
ÀÀ½ÃÀÚÀÇ ´ä¾È ÇÁ·Î±×·¥Àº ÆÄÀÏÀ» Àаųª ½á¼´Â ¾È µÈ´Ù. Å°º¸µå¿¡¼ ÀÔ·ÂÀ» ¹Þ°Å³ª ȸ鿡 ±ÛÀÚ¸¦ Ãâ·ÂÇؼµµ ¾È µÈ´Ù. ´ä¾È ÇÁ·Î±×·¥Àº ¸ðµç ÀÔ·ÂÀ» ¶óÀ̺귯¸®¿¡ ÀÖ´Â ÇÔ¼ö¿¡¼ ¹Þ´Â´Ù. »ó´ë¹æ°ú °ÔÀÓÀ» ÇÏ´Â °ÍÀ̹ǷΠÀÌ´Â ÇÊ¿¬ÀûÀΠó»çÀÌ´Ù. 󸮰¡ ³¡³ª¸é ¶óÀ̺귯¸®°¡ ÀÚµ¿À¸·Î HEX.OUTÆÄÀÏÀ» »ý¼ºÇϱ⠶§¹®¿¡ ¿©·¯ºÐÀº ÀÌ ºÎºÐ 󸮸¦ ÇÏÁö ¾Ê¾Æµµ µÈ´Ù.
´ä¾È ÇÁ·Î±×·¥Àº ¸ÕÀú ÇÏ´Â ÂÊ(ÀÚ½Å)ÀÌ ¾ðÁ¦³ª ÀÌ±æ ¼ö ÀÖ°Ô ¸» ¸î °³°¡ ÀÌ¹Ì ³õ¿© ÀÖ´Â °ÔÀÓÆÇ¿¡¼ °ÔÀÓÀ» ½ÃÀÛÇÏ°Ô µÈ´Ù. ±×·¯¹Ç·Î ´ä¾È ÇÁ·Î±×·¥Àº °ÔÀÓÆÇ »óȲÀ» ÆľÇÇϱâ À§ÇØ GetMax¿Í LookAtBoardÇÔ¼ö¸¦ ½á¾ß ÇÑ´Ù. °ÔÀÓÀ» ½ÃÀÛÇÒ ¶§ °ÔÀÓÆÇ¿¡ ÀÌ¹Ì ³õ¿© ÀÖ´Â ¸»ÀÇ °³¼ö´Â ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ÀÇ °ÍÀ̳ª Æò°¡ ¶óÀ̺귯¸®ÀÇ °ÍÀ̳ª °°´Ù.
°ÔÀÓÆÇÀÇ Å©±â´Â ¾ðÁ¦³ª 1 ÀÌ»ó 20 ÀÌÇÏÀÌ´Ù.
´ä¾È ÇÁ·Î±×·¥Àº °ÔÀÓÀ» ÃÖ´ë 200¼ö ¾È¿¡, ½Ã°£»óÀ¸·Î´Â 40ÃÊ ¾È¿¡ ³¡³»¾ß ÇÑ´Ù. Æò°¡ ¶óÀ̺귯¸®´Â ¸ðµç 󸮸¦ ¹Ýµå½Ã 20ÃÊ ¾È¿¡ ³¡³½´Ù°í º¸ÁõÇÑ´Ù.
¼öÇèÀÚ¿¡°Ô´Â ÄÚµå¿Í ÇÔ²² °°ÀÌ ¸µÅ©ÇØ¾ß ÇÏ´Â HexLibÀÌ Á¦°øµÈ´Ù. ÀÌ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÑ ÇÁ·Î±×·¥ÀÇ ¿¹¸¦ º¸À̱â À§ÇØ ¾ð¾îº°·Î ¿¹Á¦ ÇÁ·Î±×·¥ ÆÄÀÏÀÌ ÁغñµÇ¾î ÀÖ´Ù. À̸§Àº TESTHEX.CPP, TESTHEX.C, TESTHEX.PAS, TESTHEX.BASÀÌ´Ù. QuickBasicÀ» ¾´´Ù¸é ´ÙÀ½°ú °°ÀÌ HEXLIB Äü¶óÀ̺귯¸®¸¦ Àоîµé¿©¾ß ÇÑ´Ù.
QB /L HEXLIB
HexLib¿¡ ÀÖ´Â ÇÔ¼ö´Â ´ÙÀ½°ú °°´Ù. (ÇÔ¼ö ¼±¾ðÀº ÆĽºÄ®, C/C++, º£ÀÌÁ÷ ¼øÀÌ´Ù.)
function LookAtBoard (row, column: integer): integer;
int LookAtBoard (int row, int column);
declare function LookAtBoard cdecl (byval x as integer, byval y as integer)
ÁöÁ¤ÇÑ À§Ä¡¿Í °ü·ÃµÈ ´ÙÀ½ °ªÀ» µÇµ¹¸°´Ù.
procedure PutHex (row, column: integer);
void PutHex (int row, int column);
declare sub PutHex cdecl (byval x as integer, byval y as integer)
¿©·¯ºÐÀÇ ´ä¾È ÇÁ·Î±×·¥ÀÌ Àڱ⠸»À» ÁöÁ¤ÇÑ À§Ä¡¿¡ µÐ´Ù. ´Ù¸¥ Çí½º Ä«¿îÅÍ°¡ °Å±â ³õ¿© ÀÖÁö ¾Ê¾Æ¾ß ÇÔ¼ö°¡ µ¿ÀÛÇÑ´Ù.
function GameIsOver: integer;
int GameIsOver (void);
declare function GameIsOver cdecl ()
´ÙÀ½À» ¶æÇÏ´Â Á¤¼ö Áß Çϳª¸¦ µÇµ¹¸°´Ù.
procedure MakeLibMove;
void MakeLibMove(void);
declare sub MakeLibMove cdecl ()
Æò°¡ ¶óÀ̺귯¸®¿¡°Ô ´ÙÀ½ ¼ö¸¦ µÎ°Ô ÇÑ´Ù. °ÔÀÓÆÇ¿¡ »ý±ä º¯È´Â LookAtBoard³ª ´Ù¸¥ ÇÔ¼ö·Î ¾Ë¾Æ³»µµ·Ï ÇÑ´Ù.
function GetRow: integer;
int GetRow (void);
declare function GetRow cdecl ()
Æò°¡ ¶óÀ̺귯¸®°¡ ÃÖ±Ù¿¡ µÐ ¼öÀÇ ¿ À§Ä¡¸¦ µÇµ¹¸°´Ù. ¶óÀ̺귯¸®°¡ ¼ö¸¦ µÐ ÀûÀÌ ¾øÀ¸¸é -1À» µÇµ¹¸°´Ù. ´ä¾È ÇÁ·Î±×·¥ÀÌ MakeLibMove¸¦ ´Ù½Ã È£ÃâÇÏÁö ¾ÊÀ¸¸é ÀÌ ÇÔ¼ö´Â °è¼Ó °°Àº °ªÀ» µÇµ¹¸°´Ù.
function GetColumn: integer;
int GetColumn (void);
declare function GetColumn cdecl ()
Æò°¡ ¶óÀ̺귯¸®°¡ ÃÖ±Ù¿¡ µÐ ¼öÀÇ Çà À§Ä¡¸¦ µÇµ¹¸°´Ù. ¶óÀ̺귯¸®°¡ ¼ö¸¦ µÐ ÀûÀÌ ¾øÀ¸¸é -1À» µÇµ¹¸°´Ù. ´ä¾È ÇÁ·Î±×·¥ÀÌ MakeLibMove¸¦ ´Ù½Ã È£ÃâÇÏÁö ¾ÊÀ¸¸é ÀÌ ÇÔ¼ö´Â °è¼Ó °°Àº °ªÀ» µÇµ¹¸°´Ù.
function GetMax: integer;
int GetMax (void);
declare function GetMax cdecl ()
°ÔÀÓÆÇÀÇ Å©±â NÀ» µÇµ¹¸°´Ù.
´ä¾È ÇÁ·Î±×·¥ÀÌ °ÔÀÓ¿¡¼ À̱â¸é ±× µ¥ÀÌÅÍ¿¡ ´ëÇؼ´Â ÃÖ´ëÁ¡À» ¹Þ´Â´Ù. ±×·¯³ª Áö¸é ±× µ¥ÀÌÅÍ¿¡ ´ëÇؼ´Â 20%ÀÇ Á¡¼ö¸¦ ¹Þ´Â´Ù. ½Ã°£ÀÌ °æ°úµÇ¾î °ÔÀÓÀÌ ³¡³ª±â Àü¿¡ ÇÁ·Î±×·¥ÀÌ Á¾·áµÇ¸é ±× µ¥ÀÌÅÍ¿¡ ´ëÇÑ Á¡¼ö´Â 0Á¡ÀÌ´Ù.
"À̼õ°í·Î·Î"´Â ³²¾ÆÇÁ¸®Ä« °øȱ¹¿¡ »ç´Â ÁÙ·ç Á·ÀÇ ¸»·Î ³ë·¡±â¶ó´Â ¶æÀÌ´Ù. À̼õ°í·Î·Î´Â ±æÂßÇÏ°í ±¤ÅÃÀÌ ÀÖÀ¸¸ç °Ë°í ´Ù¸®°¡ ¸¹Àº ÀýÁöµ¿¹°ÀÌ´Ù.
À̼õ°í·Î·Î´Â ¸ÔÀ» ¼ö ÀÖ´Â "°úÀÏ" ¼ÓÀ» ÆĸÔÀ¸¸é¼ Áö³ª°£´Ù. °úÀÏÀº Á÷À°¸éüÀÇ ¹æÀÌ ÀÔüÀûÀ¸·Î Â÷°îÂ÷°î ½×ÀÎ ¸ð¾çÀ̶ó°í °¡Á¤ÇÑ´Ù.
À̼õ°í·Î·Î°¡ ¾Æ·¡ÀÇ Á¦ÇÑ Á¶°ÇÀ» ¸¸Á·ÇÏ¸é¼ °úÀÏ ¼ÓÀÇ ¹æÀ» ÃÖ´ëÇÑ ¸¹ÀÌ ÆĸÔÀ¸¸ç °úÀÏÀ» Åë°úÇÒ ¼ö ÀÖ´Â ¿òÁ÷ÀÓÀ» °è»êÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇ϶ó. ÇÁ·Î±×·¥Àº À̼õ°í·Î·Î°¡ °úÀÏÀ» ÆĸÔÀ¸¸é¼ ÃëÇÒ ÇൿÀ» Ãâ·ÂÇØ¾ß ÇÑ´Ù.
À̼õ°í·Î·Î´Â óÀ½¿£ °úÀÏ ¹Û¿¡ Àֱ⠶§¹®¿¡ óÀ½¿¡´Â ¹Ýµå½Ã (1, 1, 1) À§Ä¡ÀÇ ¹æÀ» ¸Ô°í ¿©±â¿¡ ÀÖ¾î¾ß ÇÑ´Ù. ±×¸®°í ´õ ÀÌ»ó ¸ÔÀ» ¼ö ÀÖ´Â ¹æÀÌ ¾ø°Å³ª ¿òÁ÷ÀÏ °÷ÀÌ ¾øÀ¸¸é µ¿ÀÛÀÌ ³¡³´Ù.
ÀÔ·Â ÆÄÀÏ¿¡´Â °úÀÏÀÇ ±æÀÌ(L), ³Êºñ(W), ³ôÀÌ(H)¸¦ ³ªÅ¸³»´Â ¼¼ Á¤¼ö°¡ µé¾îÀÖ´Ù. ¼¼ ¼ö ¸ðµÎ 1 ÀÌ»ó 32 ÀÌÇÏÀÌ´Ù.
ÀÔ·Â ÆÄÀÏÀÇ ¿¹ (TOXIC.DAT)
2 ¡ç °úÀÏ ±æÀÌ(L)°¡ 2 3 ¡ç °úÀÏ ³Êºñ(W)°¡ 3 2 ¡ç °úÀÏ ³ôÀÌ(H)°¡ 2
Ãâ·Â ÆÄÀÏÀÇ °¢ ÁÙÀº E(¸Ô´Â´Ù)¿Í M(À̵¿ÇÑ´Ù)À¸·Î ½ÃÀÛÇÏ¿© ´ÙÀ½¿¡ ±× µ¿ÀÛÀ» ÃëÇÒ ºí·Ï À§Ä¡¸¦ ³ªÅ¸³»´Â 3°³ÀÇ Á¤¼ö°¡ ¿Â´Ù. À§Ä¡´Â L, W, H ¼ø¼·Î Àû´Â´Ù. ¾ÕÀÇ ÀÔ·Â ÆÄÀÏ¿¡ ´ëÇÑ ¿Ã¹Ù¸¥ ÇØ´äÀ» ¿¹·Î µé¾î º¸°Ú´Ù.
Ãâ·Â ÆÄÀÏÀÇ ¿¹ (TOXIC.OUT) (¾Æ·¡´Â ÃÖÀûÇØ°¡ ¾Æ´Ò ¼öµµ ÀÖ´Ù.)
E 1 1 1 ¡ç ºí·Ï 1 1 1 À§Ä¡¸¦ ¸ÔÀ½ M 1 1 1 ¡ç ºí·Ï 1 1 1 À§Ä¡·Î À̵¿ E 2 1 1 ... E 1 1 2 E 1 2 1 M 1 2 1 E 1 3 1 M 1 3 1 E 2 3 1 E 1 3 2 M 1 3 2
À̼õ°í·Î·Î°¡ Á¦ÇÑ »çÇ×À» ¾î±â°Ô ¿òÁ÷ÀÌ¸é ±× ÇÁ·Î±×·¥À» 0Á¡À» ¹Þ´Â´Ù. ÃÑ Á¡¼ö´Â ¸ÔÀº ÄÀÇ °³¼ö¿Í ¿ì¸®°¡ ¾Ë°í ÀÖ´Â ÃÖÀûÀÇ Á¤´ä¿¡ ÀÖ´Â ¼ö¿ÍÀÇ ºñÀ²ÀÌ´Ù. ÇØ´äÀÇ Á¡¼ö´Â 100%¸¦ ³ÑÁö ¾Ê´Â´Ù.
Áöµµ Á¦ÀÛÀÚÀÇ Á¶¼öÀÎ ´ç½ÅÀº »õ·Î ³ª¿Â Áöµµ¿¡ µµ½Ã À̸§À» Àû¾î ³Ö´Â ¾î·Á¿î ÀÏÀ» ¸Ã¾Æ ¿Ô´Ù.
Áöµµ´Â °¡·Î, ¼¼·Î ¸ðµÎ 1000°³ÀÇ ÄÀ¸·Î ±¸¼ºµÅ ÀÖ´Ù. °¢°¢ÀÇ µµ½Ã´Â Áöµµ¿¡¼ ÇÑ ÄÀ» Â÷ÁöÇÑ´Ù. µµ½ÃÀÇ À̸§Àº ¿©·¯ ÄÀ¸·Î ÀÌ·ç¾îÁø Á÷»ç°¢Çü »óÀÚ ¸ð¾çÀ¸·Î Áöµµ À§¿¡ Ç¥½ÃµÈ´Ù. ÀÌ »óÀÚ¸¦ ¶óº§À̶ó ÇÏ°Ú´Ù.
µµ½Ã¸¦ ³ªÅ¸³»´Â ÇÑ Á¡¿¡¼ ¶óº§ÀÌ ÀÖÀ» ¼ö ÀÖ´Â À§Ä¡ ³× °÷
¶óº§Àº ¾Æ·¡ÀÇ Á¦ÇÑÀ» ¸¸Á·ÇÏ´Â À§Ä¡¿¡ ÀÖ¾î¾ß ÇÑ´Ù.
°¢ ¶óº§¿¡´Â µµ½Ã À̸§À» ³ªÅ¸³»´Â ¹®ÀÚ¿°ú °ø¹é ÇÑ ÄÀÌ µé¾î°¡ ÀÖ´Ù. °¢ µµ½Ã(¡á)¸¶´Ù ±×°ÍÀÇ À̸§°ú, ¶óº§À» Àû´Â ÇÑ ±ÛÀÚÀÇ °¡·Î, ¼¼·Î Å©±â°¡ ´Ù¸£°Ô ºÎ¿©µÈ´Ù. ´Ü¾î ³¡ÀÇ °ø¹é(¡à) ÇÑ ÄÀÇ Å©±â´Â ±ÛÀÚ ÇÑ ÀÚÀÇ Å©±â¿Í °°´Ù.
Áöµµ °¡Àå ¿ÞÆíÀÇ °¡·Î ÁÂÇ¥´Â 0ÀÌ¸ç ¸Ç ¾Æ·§ÁÙÀÇ ¼¼·Î ÁÂÇ¥µµ 0ÀÌ´Ù. À§ ±×¸²Àº Langa¸¦ (0, 3)¿¡, Ceres¸¦ (6, 1)¿¡, PaarlÀ» (7, 3)À§Ä¡¿¡ ¹èÄ¡ÇÑ ¿¹¸¦ º¸¿©ÁØ´Ù. ¶óº§Àº ¸ðµÎ ¿Ã¹Ù¸£°Ô µé¾î°¬´Ù. ÇÏÁö¸¸ ¿Ã¹Ù¸£°Ô ¹èÄ¡ÇÏ´Â ¹æ¹ýÀÌ À̰͸¸ ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù.
¿©·¯ºÐÀÇ ÇÁ·Î±×·¥Àº Áöµµ¿¡ ÀÖ´Â µµ½ÃÀÇ À§Ä¡¿Í µµ½Ã À̸§, À̸§ÀÇ ±ÛÀÚ Å©±â¸¦ ÀÐÀº ´ÙÀ½ À§ÀÇ Á¦ÇÑ »çÇ×À» ¾î±âÁö ¾ÊÀ¸¸é¼ °¡´ÉÇÑ ÇÑ À̸§À» Áöµµ¿¡ ¸¹ÀÌ Ç¥½ÃÇÏ¿©, ¹èÄ¡ÇÑ ¶óº§ À§Ä¡¸¦ Ãâ·ÂÇØ¾ß ÇÑ´Ù.
ÀÔ·Â ÆÄÀÏÀº µµ½ÃÀÇ °³¼ö¸¦ ³ªÅ¸³»´Â NÀÌ ¸ÕÀú µé¾îÀÖ´Ù. ´ÙÀ½ ÁÙºÎÅÍ´Â µµ½Ã¿¡ ´ëÇÑ Á¤º¸°¡ ´ÙÀ½ ¼ø¼´ë·Î µé¾îÀÖ´Ù. µµ½Ã À̸§Àº ¸ðµÎ ÇÑ ´Ü¾î·Î 200ÀÚ¸¦ ³ÑÁö ¾Ê´Â´Ù. µµ½ÃÀÇ °³¼ö´Â ÃÖ´ë 1,000°³ÀÌ´Ù.
ÀÔ·Â ÆÄÀÏÀÇ ¿¹ (MAPS.DAT)
3 ¡ç N=3 0 3 1 1 Langa ¡ç X=0, Y=3, W=1, H=1 6 1 1 1 Ceres ... 7 3 1 2 Paarl
´ä¾È ÇÁ·Î±×·¥Àº NÁÙÀ» Ãâ·ÂÇØ¾ß ÇÑ´Ù. °¢ ÁÙ¿¡´Â ¹èÄ¡ÇÑ ¶óº§ÀÇ ÁÂÃø »ó´Ü À§Ä¡°¡ °¡·ÎºÎÅÍ µé¾î°£´Ù. ±ÔÄ¢À» ¾î±âÁö ¾Ê°í´Â ¹èÄ¡ÇÒ ¼ö ¾ø´Â ¶óº§ÀÌ ÀÖÀ¸¸é -1 -1À» Ãâ·ÂÇÑ´Ù. Ãâ·ÂÇÏ´Â ¶óº§ÀÇ ¼ø¼´Â ÀÔ·Â ÆÄÀÏ¿¡¼ ÀÐÀº µµ½ÃÀÇ ¼ø¼¿Í ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. µÎ ¼öÄ¡ »çÀÌ¿¡´Â ºó Ä Çϳª¸¦ ³Ö´Â´Ù.
Ãâ·Â ÆÄÀÏÀÇ ¿¹ (MAPS.OUT)
1 4 ¡ç LangaÀÇ ¶óº§Àº (1,4)¿¡ µÐ´Ù. 0 0 ¡ç CeresÀÇ ¶óº§Àº (0, 0)¿¡ µÐ´Ù. 8 2 ¡ç PaarlÀÇ ¶óº§Àº (8, 2)¿¡ µÐ´Ù.
°¢ Å×½ºÆ® µ¥ÀÌÅ͸¶´Ù Á¡¼ö´Â ´ä¾È ÇÁ·Î±×·¥ÀÌ ¹èÄ¡ÇÑ µµ½Ã À̸§ÀÇ À§Ä¡¿Í ÁÖÃÖÃø¿¡¼ ÁغñÇÑ ÃÖÀûÇØ¿ÍÀÇ ºñÀ²·Î »êÃâµÈ´Ù. ÃÖ¼Ò Á¡¼ö´Â 0%À̸ç ÃÖ´ë Á¡¼ö´Â 100%ÀÌ´Ù.
¶óº§ÀÌ Çϳª¶óµµ Á¦ÇÑ »çÇ×À» ¾î±â¸é ±× Å×½ºÆ® µ¥ÀÌÅÍ¿¡ ´ëÇÑ Á¡¼ö´Â 0Á¡ÀÌ µÈ´Ù. ¶óº§ÀÌ ±×¿¡ ÇØ´çÇÏ´Â µµ½Ã¿Í ¸ÂÁö ¾ÊÀ¸¸é ±× Å×½ºÆ® µ¥ÀÌÅÍ¿¡ ´ëÇÑ Á¡¼ö´Â 0Á¡ÀÌ µÈ´Ù.
À̹ø ¹®Á¦´Â ±ÛÀÚ¸¦ ÀνÄÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â °ÍÀÌ´Ù.
°¡Àå ¿Ã¹Ù¸¥ ±ÛÀÚÀÇ Çü»óÀº ÇÑ ÁÙ¿¡ 20°³ÀÇ ¼ýÀÚ°¡ ÀÖ´Â ¹®ÀÚ¿ ½º¹« ÁٷΠǥÇöµÈ´Ù. °¢°¢ÀÇ ¼ýÀÚ´Â 0 ¶Ç´Â 1ÀÌ´Ù. ¿¹Á¦ ÆÄÀÏ¿¡ ±ÛÀÚ À̹ÌÁö ÆÄÀÏÀÌ ±¸¼ºµÈ ¸ð¾çÀÌ ³ª¿Í ÀÖ´Ù.
FONT.DAT´Â °ø¹éºÎÅÍ ½ÃÀÛÇÏ¿© a~z±îÁö 27±ÛÀÚÀÇ ¿Ã¹Ù¸¥ ¸ð¾çÀ» ´ã°í ÀÖ´Ù. ÇÑÆí, IMAGE.DAT¿¡´Â ¿øº»ÀÌ ¾à°£ ¿Ö°îµÈ ±ÛÀÚÀÇ Çü»óÀÌ µé¾î ÀÖ´Ù. ±ÛÀÚ ¸ð¾çÀº ´ÙÀ½°ú °°ÀÌ ¿Ö°îµÉ ¼ö ÀÖ´Ù.
´Ù¸¸ ÇÑ ±ÛÀÚÀÇ ±×¸²¿¡ ³»¿ëÀÌ µ¡ºÙ¿©Áø ÁÙµµ ÀÖ°í ºüÁø ÁÙµµ ÀÖ´Â °æ¿ì´Â ¾ø´Ù. ¶ÇÇÑ 1°ú 0ÀÌ µÚ¹Ù²ï °ÍÀº ÀüüÀÇ 30% À̳»ÀÌ´Ù. ÁÙÀÌ µ¡ºÙ¿©Á® ÀÖ´Â °æ¿ìµµ, µÎ ÁÙ Áß Çϳª ¶Ç´Â ¸ðµÎ¿¡ 0°ú 1ÀÌ ¹Ù²ï °Í °°Àº ¿Ö°îÀÌ ÀÖÀ» ¼ö ÀÖ°í, ¿Ö°îµÈ ¸ð¾çÀº ¸ðµÎ ´Ù¸¦ ¼ö ÀÖ´Ù.
±ÛÀÚ ÇÑ ÀÚ ÀÌ»óÀÇ ±×¸²À» ´ã°í ÀÖ´Â IMAGE.DAT¸¦ Àоî, FONT.DAT¿¡ ÀÖ´Â ¹Ù¸¥ ±Û²Ã ¸ð¾çÀ» ¹ÙÅÁÀ¸·Î ±ÛÀÚ¸¦ ÀνÄÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇ϶ó.
ÀÎ½Ä ÀÛ¾÷Àº ±Û²Ã ±×¸²°ú µé¾î¿Â ±×¸²¸¦ ºñ±³Çؼ 1°ú 0ÀÌ °¡Àå Àû°Ô ¹Ù²ï ±Û²ÃÀÇ ±ÛÀÚ¸¦ °í¸£´Â °ÍÀÌ´Ù. ¹°·Ð µ¡ºÙ¿©Áö°Å³ª ºüÁø ÁÙµµ °¡Àå °¡´É¼ºÀÌ ³ôÀº ÂÊÀ¸·Î ¿¹»óÀ» ÇØ °¡¸ç ÀνÄÇØ¾ß ÇÒ °ÍÀÌ´Ù. ³»¿ëÀÌ Áߺ¹µÈ ÁÙÀÌ ÀÖ´Ù°í ÆǴܵǴ °æ¿ì µÑ Áß ¿Ö°îÀÌ ´õ ÀûÀº °÷ÀÇ ¿Ö°î Á¤µµ¸¸ °è»êÇÏ¸é µÈ´Ù.
¿¹Á¦ ÆÄÀÏ¿¡ ÀÖ´Â °Í°ú ½É»ç Å×½ºÆ®¿ëÀ¸·Î ¾²ÀÌ´Â ±ÛÀÚ À̹ÌÁö´Â ¿øÄ¢ÀûÀ¸·Î ¸ðµÎ ±ÛÀÚ¸¦ ÀνÄÇÒ ¼ö ÀÖ°Ô µÇ¾î ÀÖ´Ù. ¶ÇÇÑ ÇÑ ±ÛÀÚ À̹ÌÁö¿¡ ´ëÇØ °¡Àå À¯·ÂÇÑ ´äÀº Çϳª¸¸ Á¸ÀçÇÑ´Ù. ´äÀ» ¿Ã¹Ù¸£°Ô ±¸Çß´Ù¸é IMAGE.DAT¿¡´Â ³¡¿¡ 18ÁÙ ÀÌÇÏ°¡ µÇ¾î ³²´Â ÁÙÀÌ ¾øÀÌ ¸ðµç ÀÚ·á°¡ ±ÛÀÚ¸¦ ÀνÄÇϴµ¥ Á¤È®ÇÏ°Ô ¾²¿´À» °ÍÀÌ´Ù.
ÀÔ·Â ÆÄÀÏÀº ¸ðµÎ ÁÙ ¼ö¸¦ ³ªÅ¸³»´Â Á¤¼ö N (19<=N<=1200)À¸·Î ½ÃÀÛÇÑ´Ù,
N (digit1)(digit2)(digit3) . (digit20) (digit1)(digit2)(digit3) . (digit20) .
°¢ ÁÙ¿¡´Â 20°³ÀÇ ¼ýÀÚ°¡ ÀÖ´Ù. 0°ú 1 »çÀÌ¿¡ °ø¹éÀº ¾ø´Ù.
FONT.DAT¿¡´Â ±Û²Ã À̹ÌÁö°¡ µé¾îÀÖ´Ù. FONT.DAT´Â ¾ðÁ¦³ª 541ÁÙÀÌ¸ç µ¥ÀÌÅ͸¦ Æò°¡ÇÒ ¶§¸¶´Ù ´Ù¸¥ ±Û²Ã·Î ÇÒ ¼ö ÀÖ´Ù.
¿©·¯ºÐÀÇ ÇÁ·Î±×·¥Àº ÀνÄÇØ ³½ ±ÛÀÚµéÀ» ´ã°í ÀÖ´Â IMAGE.OUT¶ó´Â ÇÑ Á٠¥¸® ÆÄÀÏÀ» Ãâ·ÂÇØ¾ß ÇÑ´Ù. ±ÛÀÚµé »çÀÌ¿¡ °ø¹é°ú °°Àº ±¸ºÐÀÚ°¡ À־ ¾È µÈ´Ù. ¶ÇÇÑ ¾î¶² ±ÛÀÚÀÎÁö ÀνÄÇÏÁö ¸øÇÑ À̹ÌÁö¿¡ ´ëÇؼ´Â ÇØ´çÇÏ´Â À§Ä¡¿¡ ?¸¦ Ãâ·ÂÇØ¾ß ÇÑ´Ù.
ÁÖÀÇ: À§¿¡¼ Á¦½ÃÇÑ Ãâ·Â Çü½ÄÀº ÀϹÝÀûÀ¸·Î ¸ðµç Ç׸ñ¸¶´Ù °ø¹éÀÌ ÀÖ¾î¾ß ÇÑ´Ù´Â IOI Ç¥ÁØ Ãâ·Â ±ÔÁ¤À» µû¸£Áö ¾ÊÀº °ÍÀÌ´Ù. À̹ø ¹®Á¦¿¡¼´Â ÀνÄÇÑ ±ÛÀÚµéÀ» ºÙ¿©¼ Ãâ·ÂÇØ¾ß ÇÑ´Ù. °ø¹éµµ ÀÎ½ÄµÉ ¼ö ÀÖ´Â ¹®ÀÚÀ̱⠶§¹®ÀÌ´Ù.
Á¡¼ö´Â Àüü ±ÛÀÚ ¼ö¿Í Á¦´ë·Î ÀνÄÇÑ ±ÛÀÚ ¼öÀÇ ºñÀ²·Î °è»êÇÑ´Ù.
ÀÔ·Â ÆÄÀÏÀ» ¿¹·Î µé¸é,
FONT.DATÀÇ Ã³À½ ÀϺκР| IMAGE.DAT (ÀϺΰ¡ º¯ÇüÇÑ a±ÛÀÚ) |
540 00000000000000000000 <-23¹ø ³ª¿È. °ø¹é¿¡ ÇØ´çÇÏ´Â ±×¸² 00000011100000000000 00000111111011000000 00001111111001100000 00001110001100100000 00001100001100010000 00001100000100010000 00000100000100010000 00000010000000110000 00000001000001110000 00001111111111110000 00001111111111110000 00001111111111000000 00001000000000000000 00000000000000000000 00000000000000000000 00000000000000000000 00000000000000000000 ... |
19 00000000000000000000 00000000000000000000 00000000000000000000 00000011100000000000 00100111011011000000 00001111111001100000 00001110001100100000 00001100001100010000 00001100000100010000 00000100000100010000 00000010000000110000 00001111011111110000 00001111111111110000 00001111111111000000 00001000010000000000 00000000000000000000 00000000000001000000 00000000000000000000 00000000000000000000 |
ÀÌ¿¡ µû¸¥ Ãâ·Â ÆÄÀÏ IMAGE.OUT´Â ´ÙÀ½°ú °¥´Ù.
a ¡ç (a ÇÑ ±ÛÀÚ¸¦ ÀνÄ)
³Üƪ ȹ° ȸ»ç´Â â°í¿¡ ÄÁÅ×À̳ʸ¦ ½×´Â ÀÏÀ» ¿î¿µÇÑ´Ù. â°í´Â ÄÁÅ×À̳ʸ¦ ÀúÀåÇÏ°í ÀÌ¾î¼ ²¨³»´Â ¿ä±¸¸¦ ¹Þ¾Æµé¿© ÀÏÀ» ó¸®ÇÑ´Ù.
ÄÁÅ×À̳ʴ â°í¿¡ ÇÑ ½Ã°£ °£°ÝÀ¸·Î ¸Å½Ã Á¤°¢¿¡ µµÂøÇÑ´Ù. ±×¸®°í ¾çÀÇ Á¤¼ö ½Ã°£¸¸Å â°í¿¡ º¸°üµÇ¾î Àִ´Ù. ÄÁÅ×À̳ÊÀÇ ¹®¼ Á¤º¸¿¡´Â ÀÌ ÄÁÅ×À̳ʰ¡ â°í¿¡¼ ³ª°¡´Â ½Ã°¢ÀÌ µé¾î°£´Ù. ù ¹ø° ÄÁÅ×À̳ʰ¡ Á¦ 1½Ã°¢¿¡ µµÂøÇÑ´Ù. â°í¿¡ µé¾î°£ ÄÁÅ×À̳ʴ ¿¹Á¤µÈ ½Ã°¢º¸´Ù À̸£°Å³ª ´Ê°Ô â°í¿¡¼ ²¨³»Áú ¼öµµ ÀÖ´Ù. ±×·¯³ª ½Ã°£Â÷´Â ¡¾5½Ã°£À» ³ÑÁö ¾Ê´Â´Ù.
ÀÌ ¹®Á¦¿¡¼´Â ´ÜÀ§ ½Ã°£À» ÇÑ ½Ã°£ÀÌ Áö³¯ ¶§¸¶´Ù 1¾¿ ´Ã¾î³ª´Â ¾çÀÇ Á¤¼ö·Î Ç¥ÇöÇÑ´Ù. ÀÌ ¼ö´Â 150À» ³ÑÁö ¾Ê´Â´Ù.
±âÁß±â(ÄÁÅ×À̳ʸ¦ µé¾î ¿Å±â´Â Àåºñ)´Â °øÁß¿¡¼ â°í ¾ÈÆÆÀ» µå³ªµé¸ç ÄÁÅ×À̳ʸ¦ â°í ¾ÈÀ̳ª ¹Ù±ùÀ¸·Î ¿Å±â°í, ¾î¶³ ¶§´Â â°í¿¡ µç ÄÁÅ×À̳ʸ¦ Àç¹èÄ¡Çϱ⵵ ÇÑ´Ù. ±âÁß±â´Â ÁöÁ¤µÈ â°í ¿µ¿ªº¸´Ù ³ôÀº °÷¿¡¼µµ µ¿ÀÛÇÒ ¼ö ÀÖ´Ù. ±×·¡¾ß °¡Àå À§Ãþ¿¡ ½×ÀÎ ÄÁÅ×À̳ʺ¸´Ù ´õ ³ôÀº °÷¿¡ ÀÖÀ» ¼ö Àֱ⠶§¹®ÀÌ´Ù.
À̹ø ¹®Á¦´Â ÄÁÅ×À̳ʸ¦ ¹Þ¾Æµé¿© ÀúÀåÇÏ°í, ²¨³»´Â ÁÁÀº Àü·«À» ¼¼¿ì´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â °ÍÀÌ´Ù. ÁÁÀº Àü·«À̶õ ÄÁÅ×À̳ʸ¦ ±âÁß±â·Î ¿Å±â´Â Ƚ¼ö¸¦ ÃÖ¼Ò·Î ÇÏ¿© ¿ä±¸¸¦ ¼öÇàÇÏ´Â °ÍÀ» ¸»ÇÑ´Ù.
â°í´Â Á÷À°¸éü ¸ð¾çÀÇ °ø°£ÀÌ´Ù. ÇÁ·Î±×·¥Àº ÀÏÁ¤ÇÑ ±æÀÌ(X), Æø(Y), ³ôÀÌ(Z)¸¦ °¡Áø °ø°£À» ÄÁÅ×À̳ʸ¦ ÀúÀåÇÏ´Â µ¥ ¾µ ¼ö ÀÖ´Ù.
ÄÁÅ×À̳ʴ 1¡¿1¡¿1 Å©±âÀÇ Á¤À°¸éüÀÌ´Ù. ÄÁÅ×À̳ʴ ´Ù¸¥ ÄÁÅ×ÀÌ³Ê À§³ª ¹Ù´Ú À§¿¡ ½×ÀδÙ. ±âÁß±â´Â ²À´ë±â¿¡ ÀÖ´Â ÄÁÅ×À̳ʸ¸ ²¨³»°Å³ª â°íÀÇ ´Ù¸¥ °÷À¸·Î ¿Å±æ ¼ö ÀÖ´Ù.
ÄÁÅ×ÀÌ³Ê Çϳª¸¦ ´Ù¸¥ °÷À¸·Î ¿Å±â´Â °ÍÀº À§Ä¡¿¡ »ó°ü¾øÀÌ ±âÁß±âÀÇ ÇÑ µ¿ÀÛÀ̶ó ºÎ¸¥´Ù. ±âÁ߱⠵¿ÀÛÀº ÄÁÅ×À̳ʰ¡ µµÂøÇÒ ¶§¿Í ³ª°¥ ¶§ ¸ðµç °æ¿ì¿¡ ÇàÇØÁø´Ù. ±âÁß±âÀÇ µ¿ÀÛÀº ¸í·ÉÀ» ³»¸° Áï½Ã ´Ü¹ø¿¡ ÀÌ·ç¾îÁø´Ù.
â°í°¡ °¡µæ Â÷¸é ´ä¾È ÇÁ·Î±×·¥Àº ÄÁÅ×À̳ʸ¦ ´õ ¹Þ¾Æµé¿©¶ó´Â ¿äûÀÌ ¿ÔÀ» ¶§ À̸¦ °ÅÀýÇØ¾ß ÇÑ´Ù. ¶ÇÇÑ Ã¢°í°¡ °ÅÀÇ ¸¸¿øÀÌ µÇ¸é â°í ¿î¿µÀÇ È¿À²¼ºÀÌ ¶³¾îÁö°Å³ª ½ÉÇÑ °æ¿ì ¿äûÀ» ¹Þ¾ÆµéÀÌÁö ¸øÇÏ°Ô µÉ ¼öµµ ÀÖ´Ù. ÀÌ·± °æ¿ì¶õ ¸ðµç â°íÀÇ ÄÀÌ ²Ë Â÷¼ ´Ü ÇÑ Ä¿¡¸¸ ÄÁÅ×À̳ʸ¦ µÎ °³ ´õ ½×À» ¼ö Àִµ¥, ²À´ë±â¿¡¼ ¼¼ Ãþ ÀÌ»ó ¾Æ·¡¿¡ ÀÖ´Â ÄÁÅ×À̳ʸ¦ ²¨³» ´Þ¶ó´Â ¿äûÀÌ µé¾î¿Â °æ¿ì¸¦ µé ¼ö ÀÖ´Ù. ´Ü, ´ä¾È ÇÁ·Î±×·¥Àº Àü·«»ó ÇÊ¿äÇÏ´Ù¸é ÄÁÅ×À̳ʸ¦ â°í¿¡ ÀúÀåÇØ ´Þ¶ó´Â ¿äûÀ» ¾ðÁ¦µçÁö °ÅÀýÇÒ ¼ö ÀÖ´Ù.
´ä¾È ÇÁ·Î±×·¥Àº ½Ã¹Ä·¹ÀÌ¼Ç ¸ðµâ(¶óÀ̺귯¸®)°ú »óÈ£ ÀÛ¿ëÇÏ¿© µ¿ÀÛÇϵµ·Ï ¼³°èµÇ¾î¾ß ÇÑ´Ù. ½Ã¹Ä·¹ÀÌ¼Ç ¸ðµâÀº µ¥ÀÌÅ͸¦ Á¦°øÇÏ°í ´ä¾È ÇÁ·Î±×·¥ÀÌ ¾î¶² µ¿ÀÛÀ» ÃëÇϵµ·Ï Áö½ÃÇÏ°í ¸Þ½ÃÁö¸¦ Àü´ÞÇÑ´Ù. â°í°¡ ¿ÏÀüÈ÷ ºñ¾îÀÖ´Â »óÅ¿¡¼ ÇÁ·Î±×·¥ µ¿ÀÛÀÌ ½ÃÀ۵ȴÙ.
ÇÁ·Î±×·¥À» Å×½ºÆ®ÇÏ´Â µ¿¾È ¶óÀ̺귯¸®´Â ³»ÀåµÈ Å×½ºÆ® µ¥ÀÌÅ͸¦ ÀÐ¾î ±×°Í¿¡ ´ëÇÑ ÀÇ¹Ì ÀÖ´Â °ªÀ» µÇµ¹¸°´Ù. °¢°¢ÀÇ ÄÁÅ×À̳ʴ ¼·Î ´Ù¸¥ ¾ç¼ö·Î ±¸ºÐÇÑ´Ù.
´ä¾È ÇÁ·Î±×·¥Àº ´ÙÀ½ ÇÔ¼öµéÀ» ¾ðÁ¦µçÁö È£ÃâÇÏ¿© °ªÀ» ¾òÀ» ¼ö ÀÖ´Ù.
int GetX();
function GetX: integer;
DECLARE FUNCTION GetX CDECL ()
â°íÀÇ ±æÀ̸¦ µÇµ¹¸°´Ù. (Á¤¼ö)
int GetY();
function GetY: integer;
DECLARE FUNCTION GetY CDECL ()
â°íÀÇ ³Êºñ¸¦ µÇµ¹¸°´Ù. (Á¤¼ö)
int GetZ();
function GetZ: integer;
DECLARE FUNCTION GetZ CDECL ()
â°íÀÇ ³ôÀ̸¦ µÇµ¹¸°´Ù. (Á¤¼ö)
X, Y, Z´Â 32¸¦ ³ÑÁö ¾Ê´Â´Ù.
´ÙÀ½ ÇÔ¼öµéÀº ÄÁÅ×À̳ʸ¦ ÀúÀåÇϰųª »©³»´Â µî ÀÏ·ÃÀÇ µ¿ÀÛ°ú °ü·ÃµÈ Á¤º¸¸¦ Á¦°øÇÑ´Ù. ÄÁÅ×À̳ʴ ¸Å½Ã Á¤°¢¿¡ µµÂøÇÑ´Ù. ÇÑÆí, ÄÁÅ×À̳ʸ¦ ²¨³»´Â µ¿ÀÛÀº ±× ½Ã°£ »çÀÌ¿¡ 󸮵ȴÙ. Áï, ÄÁÅ×À̳ʸ¦ ¾È¿¡ ³ÖÀ¸¶ó´Â ¿äûÀ» ¹Þ°í ³ª¸é ´ÜÀ§ ½Ã°£ÀÌ 1 Áõ°¡ÇÏÁö¸¸, ÄÁÅ×À̳ʸ¦ ²¨³»¶ó´Â ¿äûÀº ½Ã°£ È帧°ú °ü°è°¡ ¾ø´Ù.
int GetNextContainer();
function GetNextContainer: integer;
DECLARE FUNCTION GetNextContainer CDECL ()
½×¾Æ µÎ°Å³ª »©³¾ ÄÁÅ×À̳ÊÀÇ ¹øÈ£¸¦ ³ªÅ¸³»´Â ¾ç¼ö¸¦ µÇµ¹¸°´Ù. ±×·± µ¿ÀÛÀ» ÃëÇÒ ÄÁÅ×À̳ʰ¡ ´õ ÀÌ»ó ¾ø´Ù¸é ÀÌ ÇÔ¼ö´Â 0À» µÇµ¹¸®¸ç, ÀÌ´Â ¸ðµç 󸮰¡ ³¡³µÀ¸´Ï â°í¿¡ ÄÁÅ×À̳ʰ¡ ³²¾Æ ÀÖ´õ¶óµµ ´ä¾È ÇÁ·Î±×·¥À» Á¾·áÇ϶ó´Â ½ÅÈ£°¡ µÈ´Ù. (¿©·¯ºÐÀº ¹øÈ£°¡ ¾î´À ¹øÀÎ ÄÁÅ×À̳ʰ¡ â°í ¾îµð¿¡ ÀÖ´ÂÁö ÆľÇÇØ µÎ¾î¾ß ÇÑ´Ù.)
int GetNextAction();
function GetNextAction: integer;
DECLARE FUNCTION GetNextAction CDECL ()
´ÙÀ½¿¡ ÇÒ µ¿ÀÛÀ» ÀǹÌÇÏ´Â ¼öÄ¡¸¦ µÇµ¹¸°´Ù.
1: »õ ÄÁÅ×À̳ʸ¦ ÀúÀåÇÑ´Ù. 2: â°í¿¡ ÀÖ´Â ÇÑ ÄÁÅ×À̳ʸ¦ ²¨³½´Ù.
int GetNextStorageTime();
function GetNextStorageTime: integer;
DECLARE FUNCTION GetNextStorageTime CDECL ()
â°í¿¡ µé¾î°£ µÚºÎÅÍ ¸î ½Ã°£ µÚ ÀÌ ÄÁÅ×À̳ʰ¡ â°í¿¡¼ ³ª°¡°Ô µÇ´ÂÁö¸¦ µÇµ¹¸°´Ù. ÀÌ ½Ã°£Àº ´ç½ÅÀÇ ÇÁ·Î±×·¥ÀÌ ÄÁÅ×À̳ʸ¦ ÀúÀåÇØ µÎ´Â °èȹÀ» Â¥´Âµ¥ ¾²ÀÏ °ÍÀÌ´Ù. ÇÏÁö¸¸ ½ÇÁ¦·Î ÀÌ ÄÁÅ×À̳ʸ¦ ²¨³»¶ó´Â ¿äûÀº ¿¹»óÇß´ø °Íº¸´Ù ¾à°£ À̸£°Å³ª ´ÊÀº ½Ã°£¿¡ ¿ÃÁöµµ ¸ð¸¥´Ù. ÀÌ ½Ã°£Â÷´Â ¾Õ¿¡¼ ¸»Çß´Ù½ÃÇÇ ¡¾5½Ã°£À» ³ÑÁö´Â ¾Ê´Â´Ù. ÀÌ ÇÔ¼ö°¡ µÇµ¹¸®´Â °ªÀº GetNextActionÀÌ 1À» µÇµ¹·ÈÀ» ¶§¸¸ À¯È¿ÇÏ´Ù.
À§ÀÇ ¼¼ ÇÔ¼öµéÀº ¾î¶² ¼ø¼·Î È£ÃâµÇ¾îµµ ±¦Âú´Ù.
GetNextContainer, GetNextAction, GetNextStorageTime ÇÔ¼ö´Â ÀÌ°ÍÀÌ °¡¸®Å°´Â ÄÁÅ×À̳ʰ¡ °ÅÀýµÇ°Å³ª ÀúÀåµÇ°Å³ª ºüÁ®³ª°¡±â Àü¿£ °è¼Ó È£ÃâÇصµ ÀÌ°Í¿¡ ´ëÇÑ Á¤º¸¸¸ µÇÇ®ÀÌÇÏ¿© µÇµ¹¸°´Ù. Áï ¾î¶² Áö½Ã¿¡ ´ëÇÑ Ã³¸®¸¦ ÇÏÁö ¾ÊÀº ä ´ÙÀ½ Áö½Ã¸¦ ¹ÞÀ» ¼ö´Â ¾ø´Ù´Â ¶æÀÌ´Ù. ÀÌ´Â ¶ÇÇÑ ´ä¾È ÇÁ·Î±×·¥ÀÌ ´ÙÀ½ ¿ä±¸¸¦ ¹Ì¸® ¾Ë°í¼ ÃÖÀûÈµÈ °èȹÀ» ¼¼¿ö³õÀ» ¼ö ¾ø°Ô ÇÏ·Á´Â ÀǵµÀ̱⵵ ÇÏ´Ù.
´ÙÀ½¿¡ ¿À´Â ÄÁÅ×À̳ʿ¡ ´ëÇÑ Á¤º¸¸¦ ¾ò¾úÀ¸¸é ´ä¾È ÇÁ·Î±×·¥Àº ¾Æ·¡ ÇÔ¼öµéÀ» ½á¼ â°í¸¦ ¿î¿µÇϵµ·Ï ÇÑ´Ù.
int MoveContainer(int x1, int y1, int x2, int y2);
function MoveContainer(x1, y1, x2, y2: integer): integer;
DECLARE FUNCTION MoveContainer CDECL (BYVAL x1 AS INTEGER, BYVAL y1 AS INTEGER,
BYVAL x2 AS INTEGER, BYVAL y2 AS INTEGER)
x1, y1 À§Ä¡ÀÇ ²À´ë±â¿¡ ÀÖ´Â ÄÁÅ×À̳ʸ¦ x2, y2 À§Ä¡ÀÇ ²À´ë±â·Î ¿Å±ä´Ù. ¿Ã¹Ù¸¥ µ¿ÀÛÀÌ¾î¼ ¼º°øÀûÀ¸·Î ¼öÇàµÇ¸é 1À» µÇµ¹¸®°í, ¿Ã¹Ù¸£Áö ¾Ê¾Æ ºÒ°¡´ÉÇÑ °æ¿ì 0À» µÇµ¹¸°´Ù.
void RefuseContainer();
procedure RefuseContainer;
DECLARE SUB RefuseContainer CDECL ()
µé¾î¿À´Â ÄÁÅ×À̳ʸ¦ °ÅÀýÇÏ°í, ¹Þ¾ÆµéÀÌÁö ¾Ê´Â´Ù.
void StoreArrivingContainer(int x, int y);
procedure StoreArrivingContainer(x, y: integer);
DECLARE SUB StoreArrivingContainer CDECL (BYVAL x AS INTEGER, BYVAL y AS
INTEGER)
µé¾î¿Â ÄÁÅ×À̳ʸ¦ â°íÀÇ x, y À§Ä¡ÀÇ ²À´ë±â¿¡ ½×´Â´Ù.
void RemoveContainer(int x, int y);
procedure RemoveContainer(x, y: integer);
DECLARE SUB RemoveContainer CDECL (BYVAL x AS INTEGER, BYVAL y AS INTEGER)
â°íÀÇ x, yÀ§Ä¡ÀÇ °¡Àå ²À´ë±â¿¡ ÀÖ´Â ÄÁÅ×À̳ʸ¦ â°í¿¡¼ ¹ÛÀ¸·Î ³»º¸³½´Ù.
ÇÁ·Î±×·¥ÀÌ ¶óÀ̺귯¸®ÀÇ ¿ä±¸¸¦ ¼öÇàÇÒ ¼ö ¾ø´Â »óÅ°¡ µÇ¸é Á¾·áÇØ¾ß ÇÑ´Ù.
ÇÒ ¼ö ¾ø°Å³ª ¿ÇÁö ¾ÊÀº µ¿ÀÛÀ» ½ÃµµÇÏ¸é ¶óÀ̺귯¸®´Â À̸¦ ¹«½ÃÇÏ¿© ½ÇÇàÇÏÁö ¾Ê´Â´Ù. ±×·¡¼ ±× µ¿ÀÛÀº ½Ã¹Ä·¹ÀÌ¼Ç »óųª ¹èÁ¡¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê´Â´Ù.
´ä¾È ÇÁ·Î±×·¥Àº ¾î¶² °á°ú¸¦ ÆÄÀÏ¿¡´Ù ±â·ÏÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ¶óÀ̺귯¸®°¡ ´ä¾È ÇÁ·Î±×·¥ÀÌ Çß´ø µ¿ÀÛÀ» ¾Ë¾Æ¼ ±â·ÏÇÑ´Ù. ÀÌ ÆÄÀÏÀÌ ½É»çÇϴµ¥ ¾²ÀδÙ.
¿©·¯ºÐÀÇ ´ä¾È ÇÁ·Î±×·¥Àº ´ÙÀ½ ÄÁÅ×ÀÌ³Ê ¿ä±¸¿¡ ´ëÇÑ Á¤º¸¸¦ ¾òÀº ´ÙÀ½ ¿ä±¸¿¡ µû¶ó ÄÁÅ×À̳ʸ¦ ±âÁ߱⸦ ½á â°í¿¡ ÀúÀåÇϰųª ¹ÛÀ¸·Î ²¨³»°í, ¶§¿¡ µû¶ó¼´Â ÀúÀåÇ϶ó´Â ¿ä±¸¸¦ °ÅÀýµµ ÇØ¾ß ÇÑ´Ù. ÀÌ·¸°Ô ´õ ó¸®ÇÒ ÄÁÅ×À̳ʰ¡ ¾øÀ» ¶§±îÁö µÇÇ®ÀÌÇÑ´Ù.
´ä¾È ÇÁ·Î±×·¥À» ¸¸µé ¶§ °°ÀÌ ¸µÅ©ÇØ¾ß ÇÏ´Â StackLib¶ó´Â ¶óÀ̺귯¸®°¡ ÁغñµÇ¾î ÀÖ´Ù. Ç¥ÁØ C/C++ ¶óÀ̺귯¸®¿¡ StackLib°¡ Æ÷ÇԵŠÀֱ⠶§¹®¿¡ Çì´õ ÆÄÀϸ¸ ÀÎŬ·çµåÇϸé ÀÚµ¿À¸·Î ÀÌ°ÍÀÌ ¸µÅ©µÈ´Ù. QuickBasic ÅëÇÕ È¯°æ¿¡¼ ¶óÀ̺귯¸®¸¦ ¾²·Á¸é ÇÁ·Î±×·¥À» ¾Æ·¡¿Í °°ÀÌ ½ÇÇàÇØ¾ß ÇÑ´Ù.
QB /L STACKLIB
ÀÌ ¶óÀ̺귯¸®¸¦ ¾´ ¿¹Á¦ ÇÁ·Î±×·¥ÀÇ ¼Ò½º Äڵ尡 ¾ð¾îº°·Î TESTSTK.BAS, TESTSTK.PAS, TESTSTK.CPP, TESTSTK.C¶õ À̸§À¸·Î ÁغñµÇ¾î ÀÖ´Ù.
´ä¾È ÇÁ·Î±×·¥Àº ´Ù¾çÇÑ ÄÁÅ×ÀÌ³Ê Á¶ÀÛ Áö½Ã¸¦ ´ãÀº ¿©·¯ µ¥ÀÌÅÍ·Î ½É»ç¸¦ ¹ÞÀ¸¸ç, ´ä¾È ÇÁ·Î±×·¥ÀÌ ÇÑ µ¿ÀÛÀº ½É»ç À§¿øÀÌ ¾Ë°í ÀÖ´Â ÃÖÀûÀÇ ÇØ´ä°ú ºñ±³ÇÏ¿© Á¡¼ö°¡ ¸Å°ÜÁø´Ù.
´Ü, ÄÁÅ×À̳ʸ¦ ÇÑ ¹ø °ÅÀýÇÒ ¶§¸¶´Ù ½ÇÁ¦·Î ¿äûÀ» ¹Þ¾ÆµéÀ̱â À§ÇØ ¿òÁ÷ÀÎ ±âÁß±â Ƚ¼ö¿¡ ´Ù¼¸ ȸ°¡ ´õ ºÎ°úµÈ´Ù. ±×¸®°í ÀúÀåµÇÁö ¸øÇϰųª â°í¿¡¼ ³ª°¡Áö ¸øÇÑ ÄÁÅ×À̳ʿ¡ ´ëÇؼµµ ÇÑ °³¸¶´Ù ´Ù¼¸ µ¿ÀÛÀÌ ´õ ´õÇØÁø´Ù. (ÀÌ´Â ¸ðµç ÄÁÅ×ÀÌ³Ê Ã³¸®°¡ ³¡³ª±â Àü¿¡ ÇÁ·Î±×·¥ÀÌ ³¡³µÀ» ¶§¿¡ ´ëÇÑ ¹úÄ¢ÀÌ´Ù.)
ÃÖÁ¾ Á¡¼ö´Â ±âÁ߱⸦ ¿òÁ÷ÀΠȽ¼ö¿¡ ¹úÁ¡À¸·Î ´õÇØÁø Ƚ¼öÀÇ ÇÕ°ú, ¾Ë·ÁÁø ÃÖ°íÀÇ ÇØ´ä(°¡Àå Àû°Ô ±âÁ߱⸦ ¿òÁ÷¿© ¿ä±¸¸¦ ¼öÇàÇÑ µ¿ÀÛ È½¼ö)¿¡ ´ëÇÑ ºñÀ²·Î °è»êµÈ´Ù. ÇÁ·Î±×·¥ÀÌ ÇÊ¿äÇÑ È½¼öº¸´Ù µÎ ¹è ÀÌ»ó ¸¹Àº ±âÁ߱⠵¿ÀÛÀ» ½ÃµµÇϸé 0Á¡ 󸮵ȴÙ.
ÃÖ¼Ò Á¡¼ö´Â 0%, ÃÖ´ë Á¡¼ö´Â 100%ÀÌ´Ù.