ﺑﺎﺳﻤﻪ ﺗﻌﺎﻟ ﻃﺮاﺣ و ﺗﺤﻠﯿﻞ اﻟ ﻮرﯾﺘﻢﻫﺎ )(۴٠-٣۵۴ Design and Analysis of Algorithms داﻧﺸ ﺪهی ﻣﻬﻨﺪﺳ ﮐﺎﻣﭙﯿﻮﺗﺮ ﻣﺪرس :ﻣﺤﻤﺪ ﻗﺪﺳ ﻣﻮﻋﺪ ارﺳﺎل ٢۵ :ﻓﺮوردﯾﻦ ١٣٩۴ ﺗﻤﺮﯾﻦ ﺑﺮﻧﺎﻣﻪﻧﻮﯾﺴ ٣ ﭼﺮخﺑﺎزی »ﭼﺮخﺑﺎزی« ،ﻫﻤﺎنﻃﻮر ﮐﻪ از اﺳﻤﺶ ﭘﯿﺪاﺳﺖ ،ﯾ ﺑﺎزی اﺳﺖ ﮐﻪ ﺑﺎ ﺗﻌﺪادی ﭼﺮخ اﻧﺠﺎم ﻣ ﺷﻮد .اﻋﺪاد ٠ﺗﺎ ٩ﭘﺸﺖ ﺳﺮ ﻫﻢ و ﺳﺎﻋﺖﮔﺮد روی ﻣﺤﯿﻂ ﻫﺮ ﭼﺮخ ﻧﻮﺷﺘﻪ ﺷﺪهاﻧﺪ .رﻗﻢﻫﺎی ﺑﺎﻻﯾﯽ ﭼﺮخﻫﺎ ﺗﺸ ﯿﻞ ﯾ ﻋﺪد ﺻﺤﯿﺢ ﻣ دﻫﻨﺪ .ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل وﺿﻌﯿﺖ ﭼﺮخﻫﺎ در ﺷ ﻞ زﯾﺮ ﻋﺪد ٠١٣٩۴را ﻧﺸﺎن ﻣ دﻫﺪ .در زﯾﺮ ﻫﺮ ﭼﺮخ دو ﮐﻠﯿﺪ وﺟﻮد دارد .ﮐﻠﯿﺪ ﺳﻤﺖ ﭼﭗ ﭼﺮخ را ﺑﻪ اﻧﺪازۀ ﯾ رﻗﻢ در ﺟﻬﺖ ﺳﺎﻋﺖﮔﺮد ﻣ ﭼﺮﺧﺎﻧﺪ .ﮐﻠﯿﺪ ﺳﻤﺖ راﺳﺖ آن را ﺑﻪ اﻧﺪازۀ ﯾ رﻗﻢ در ﺟﻬﺖ ﻣﺨﺎﻟﻒ ﻣ ﭼﺮﺧﺎﻧﺪ. ١٢ ٦٧ ٠١ ٨٩ ٧٨ ٦٧ ١٢ ٥٦ ٢٣ ٣٤ ٩٠١ ٠١٢ ٢٣٤ ٨٩٠ ٣٤٥ ٨٩٠ ٣٤٥ ٧٨٩ ٥٦٧ ٤٥٦ ﺷ ﻞ :١ﯾ وﺿﻌﯿﺖ از ﭼﺮخﻫﺎ ﮐﻪ ﻋﺪد ٠١٣٩۴را ﻧﺸﺎن ﻣ دﻫﺪ. در آﻏﺎز ،ﭼﺮخﻫﺎ در وﺿﻌﯿﺖ »اﺑﺘﺪاﯾﯽ« ﻗﺮار دارﻧﺪ .ﺗﻌﺪادی وﺿﻌﯿﺖ »ﻣﻤﻨﻮﻋﻪ« و ﯾ ﮔﺎم ﻣ ﺗﻮاﻧﯿﻢ ﯾ وﺿﻌﯿﺖ »ﻧﻬﺎﯾﯽ« ﻧﯿﺰ دارﯾﻢ .در ﻫﺮ از ﮐﻠﯿﺪﻫﺎ را ﻓﺸﺎر دﻫﯿﻢ .ﺑﺮﻧﺎﻣﻪای ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﺣﺪاﻗﻞ ﺗﻌﺪاد ﮔﺎمﻫﺎی ﻣﻮرد ﻧﯿﺎز ﺑﺮای رﺳﯿﺪن از وﺿﻌﯿﺖ اﺑﺘﺪاﯾﯽ ﺑﻪ وﺿﻌﯿﺖ اﻧﺘﻬﺎﯾﯽ را ﺑﯿﺎﺑﺪ ،ﻃﻮری ﮐﻪ ﻫﯿﭻﮔﺎه در وﺿﻌﯿﺖ ﻣﻤﻨﻮﻋﻪ ﻗﺮار ﻧﮕﯿﺮﯾﻢ. ورودی ﺧﻂ اول ورودی ﺷﺎﻣﻞ ۵رﻗﻢ اﺳﺖ ﮐﻪ وﺿﻌﯿﺖ اوﻟﯿﮥ ﭼﺮخﻫﺎ را ﻧﺸﺎن ﻣ دﻫﻨﺪ .در ﺧﻂ ﺑﻌﺪی ﻧﯿﺰ ۵رﻗﻢ ﻣ آﯾﻨﺪ ﮐﻪ ﻧﺸﺎندﻫﻨﺪۀ وﺿﻌﯿﺖ ﻧﻬﺎﯾﯽ ﻫﺴﺘﻨﺪ .در ﺧﻂ ﺳﻮم ﻋﺪد ﺻﺤﯿﺢ و ﻧﺎﻣﻨﻔ nﻣ آﯾﺪ ﮐﻪ ﺗﻌﺪاد وﺿﻌﯿﺖﻫﺎی ﻣﻤﻨﻮﻋﻪ اﺳﺖ .ﺳﭙﺲ در nﺧﻂ ﺑﻌﺪی ،در ﻫﺮ ﺧﻂ ۵رﻗﻢ داده ﻣ ﺷﻮد ﮐﻪ ﯾ وﺿﯿﺖ ﻣﻤﻨﻮﻋﻪ را ﺗﻮﺻﯿﻒ ﻣ ﮐﻨﻨﺪ .ﻫﺮ دو رﻗﻢ ﻣﺘﻮاﻟ ﺑﺎ ﯾ ﺷﺪهاﻧﺪ. ١ ﻓﺎﺻﻠﻪ از ﻫﻢ ﺟﺪا ﺧﺮوﺟ در ﺗﻨﻬﺎ ﺳﻄﺮ ﺧﺮوﺟ ﺣﺪاﻗﻞ ﮔﺎمﻫﺎی ﻣﻮرد ﻧﯿﺎز ﺑﺮای رﺳﯿﺪن از وﺿﻌﯿﺖ اﺑﺘﺪاﯾﯽ ﺑﻪ وﺿﻌﯿﺖ اﻧﺘﻬﺎﯾﯽ )ﺑﺪون اﺳﺘﻔﺎده از وﺿﻌﯿﺖﻫﺎی ﻣﻤﻨﻮﻋﻪ( را ﭼﺎپ ﮐﻨﯿﺪ .اﮔﺮ رﺳﯿﺪن ﺑﻪ وﺿﻌﯿﺖ ﻧﻬﺎﯾﯽ ﻣﻤ ﻦ ﻧﺒﻮد ﻋﺪد −١را ﭼﺎپ ﮐﻨﯿﺪ. ﻣﺤﺪودﯾﺖﻫﺎ n ≤ ١٠۵ ورودی و ﺧﺮوﺟ ﻧﻤﻮﻧﻪ stdin stdout 7 1 1 1 1 1 0 0 0 0 0 5 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 -1 0 0 0 0 0 0 5 3 1 7 10 0 0 0 0 1 0 0 0 0 9 0 0 0 1 0 0 0 0 9 0 0 0 1 0 0 0 0 9 0 0 0 1 0 0 0 0 9 0 0 0 1 0 0 0 0 9 0 0 0 0 ٢ ﻋﯿﺪی ﻣﺒﯿﻦ ﺧﯿﻠ ﻋﯿﺪی دوﺳﺖ دارد! در ﯾ ﻣﻬﻤﺎﻧ ﻋﻤﻮﯾﺶ ﺑﻪ او ﺟﺪوﻟ داد و ﮔﻔﺖ »ﻫﺮ ﭼﻘﺪر EYDIدر اﯾﻦ ﺟﺪول ﭘﯿﺪا ﮐﻨ ﺑﻪ ﻫﻤﺎن ﺗﻌﺪاد ﺳ ﻪ ﺑﻪ ﺗﻮ ﻋﯿﺪی ﻣ دﻫﻢ« .در ﻫﺮ ﺧﺎﻧﮥ ﺟﺪول ﯾ از ﺣﺮوف D ،Y ،Eو Iﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ .روش ﺑﺎزی ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ. .١ﻣﺒﯿﻦ در اﺑﺘﺪا ﯾ ﺧﺎﻧﻪ ﺷﺎﻣﻞ ﺣﺮف Eﭘﯿﺪا ﻣ ﮐﻨﺪ. .٢ﺧﺎﻧﻪای ﺷﺎﻣﻞ ﺣﺮف Yﭘﯿﺪا ﻣ ﮐﻨﺪ ﮐﻪ ﻣﺠﺎور ﺑﺎ ﺧﺎﻧﮥ ﻗﺒﻠ ﺑﺎﺷﺪ. .٣ﺧﺎﻧﻪای ﺷﺎﻣﻞ ﺣﺮف Dﭘﯿﺪا ﻣ ﮐﻨﺪ ﮐﻪ ﻣﺠﺎور ﺑﺎ ﺧﺎﻧﮥ ﻗﺒﻠ ﺑﺎﺷﺪ. .۴ﺧﺎﻧﻪای ﺷﺎﻣﻞ ﺣﺮف Iﭘﯿﺪا ﻣ ﮐﻨﺪ ﮐﻪ ﻣﺠﺎور ﺑﺎ ﺧﺎﻧﮥ ﻗﺒﻠ ﺑﺎﺷﺪ. .۵ﯾ ﺳ ﻪ ﺑﻪ دﺳﺖ ﻣ آورد! .۶ﺧﺎﻧﻪای ﺷﺎﻣﻞ ﺣﺮف Eﭘﯿﺪا ﻣ ﮐﻨﺪ ﮐﻪ ﻣﺠﺎور ﺑﺎ ﺧﺎﻧﮥ ﻗﺒﻠ ﺑﺎﺷﺪ .ﺳﭙﺲ ﺑﻪ ﮔﺎم دوم ﺑﺮﻣ ﮔﺮدد. اﮔﺮ اﻧﺠﺎم ﻫﺮ ﯾ ﮐﻤ از ﮔﺎمﻫﺎی ﺑﺎﻻ ﻣﻤ ﻦ ﻧﺒﺎﺷﺪ ﺑﺎزی ﺑﻪ ﭘﺎﯾﺎن ﻣ رﺳﺪ .ﻣﺒﯿﻦ از ﺷﻤﺎ ﺧﻮاﺳﺘﻪ ﺑﺮﻧﺎﻣﻪای ﺑﺮای او ﺑﻨﻮﯾﺴﯿﺪ ﺗﺎ ﺑﻪ آن ﺑﯿﺶﺗﺮﯾﻦ ﺳ ﻪ را ﺑﻪ دﺳﺖ ﺑﯿﺎورد. ورودی در ﺧﻂ اول ورودی دو ﻋﺪد nو mﻣ آﯾﻨﺪ ﮐﻪ ﺑﻪ ﺗﺮﺗﯿﺐ ﺗﻌﺪاد ﺳﻄﺮﻫﺎ و ﺗﻌﺪاد ﺳﺘﻮنﻫﺎی ﺟﺪول ﻫﺴﺘﻨﺪ n .ﺧﻂ ﺑﻌﺪی ﻫﺮ ﮐﺪام ﺷﺎﻣﻞ mﺣﺮف اﺳﺖ ،ﺑﻪ اﯾﻦ ﺻﻮرت ﮐﻪ ﺣﺮف jاُم از iاُﻣﯿﻦ ﺧﻂ ) ١ ≤ i ≤ nو (١ ≤ j ≤ mﺣﺮﻓ اﺳﺖ ﮐﻪ در ﺧﺎﻧﮥ ) (i, jاز ﺟﺪول ﻗﺮار دارد. ﺧﺮوﺟ اﮔﺮ ﻣﺒﯿﻦ ﻧﻤ ﺗﻮاﻧﺪ ﺳ ﻪای ﺑﻪ دﺳﺖ ﺑﯿﺎورد ﻋﺒﺎرت ! Poor Mobinرا ﭼﺎپ ﮐﻨﯿﺪ .اﮔﺮ ﻣﺒﯿﻦ ﻣ ﺗﻮاﻧﺪ ﻧﺎﻣﺘﻨﺎﻫ ﺳ ﻪ ﺑﻪ دﺳﺖ ﺑﯿﺎورد ﻋﺒﺎرت ! Poor Uncleرا ﭼﺎپ ﻧﻤﺎﯾﯿﺪ .در ﻏﯿﺮ اﯾﻦ ﺻﻮرت ﺣﺪاﮐﺜﺮ ﺗﻌﺪاد ﺳ ﻪﻫﺎﯾﯽ را ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﻣﺒﯿﻦ ﻣ ﺗﻮاﻧﺪ ﺑﻪ دﺳﺖ ﺑﯿﺎورد. ﻣﺤﺪودﯾﺖﻫﺎ ١ ≤ n, m ≤ ١٠٣ ٣ ورودی و ﺧﺮوﺟ ﻧﻤﻮﻧﻪ stdin 1 2 stdout Poor Mobin! EY 2 2 Poor Uncle! DI YE 5 5 4 EYDIE EYDIY EYDID EEDII IIDYE ۴
© Copyright 2026 Paperzz