PA1.pdf

‫‪HASAN ADVENTURE‬‬
‫‪BOOK #1‬‬
‫ﻣﻬﻠﺖ ارﺳﺎل‪ :‬ﺗﺎ ﭘﺎﻳﺎن روز ‪ 4‬آﺑﺎن ﻣﺎه ‪1389‬‬
‫ﺳﻘﻒ ﻧﻤﺮه ي ﺗﻤﺮﻳﻦ ﺑﻪ ازاي ﺗﺎﺧﻴﺮ ﺗﺎ ﻳﻚ روز ﻣﻌﺎدل ‪90‬درﺻﺪ‪ ،‬دو روز ‪75‬درﺻﺪ و ﭼﻬﺎر روز ‪ 25‬درﺻﺪ ﻧﻤﺮه ﻛﻞ ﺗﻤﺮﻳﻦ اﺳﺖ‪.‬‬
‫ﺣﺴﻦ و ﻏﺎر ﺟﺎدوﻳﻲ‬
‫در راه ﺻﻌﻮد ﺑﻪ ﺟﻨﮕﻞ ﺳﺤﺮ آﻣﻴﺰ‪ ،‬ﺣﺴﻦ ﻣﻴﺒﺎﻳﺴﺖ از ﻏﺎر ﺟﺎدوﻳﻲ ﻛﻪ در ﻳﻚ دره ﻗﺮار دارد ﻋﺒﻮر ﻛﻨﺪ ‪ .‬ﺑﺮاي‬
‫آﻧﻜﻪ درب ﻏﺎر ﺑﺎز ﺷﻮد ﺣﺴﻦ ﺑﺎﻳﺪ ﺟﻠﻮي ﻏﺎر ﻗﺮار ﮔﺮﻓﺘﻪ و ﭼﻬﭽﻬﻪ ي ﻣﺴﺘﺎﻧﻪ ﺳﺮ ﺑﺪﻫﺪ ‪ .‬ﺑﺮ روي دﻳﻮار‬
‫ﻏﺎر ﻳﻚ آراﻳﻪ از اﻋﺪاد ﻧﻮﺷﺘﻪ ﺷﺪه ﻛﻪ ﺣﺴﻦ ﺑﺎﻳﺪ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ آن در ﺛﺎﻧﻴﻪ ‪ i‬ام ﺗﻨﻴﻦ ﺻﺪاي ﺧﻮد را ﺑﻪ‬
‫اﻧﺪازه ﻋﺪد ‪i‬ام آراﻳﻪ ﺑﺎﻻ ﻳﺎ ﭘﺎﻳﻴﻦ ﺑﺒﺮد ‪ .‬درب ﻏﺎر ﻧﻴﺰ در ﺻﻮرﺗﻲ ﺑﺎز ﻣﻴﺸﻮد ﻛﻪ آﻫﻨﮓ ﺑﺎ ﺑﺎﻻﺗﺮﻳﻦ ﻃﻨﻴﻦ‬
‫ﺻﺪاي ﻣﻤﻜﻦ ﭘﺎﻳﺎن ﻳﺎﺑﺪ ‪ .‬ﺗﻨﻬﺎ ﻣﺸﻜﻠﻲ ﻛﻪ وﺟﻮد دارد اﻳﻦ اﺳﺖ ﻛﻪ اﮔﺮ ﻃﻨﻴﻦ ﺻﺪاي او از ﻣﻘﺪار ‪X‬اي‬
‫ﺑﺎﻻﺗﺮ رود از ﺑﺎﻻي ﻛﻮه ﺳﻨﮓ ﻫﺎ ﺑﻪ ﭘﺎﺋﻴﻦ ﻣﻴﺮﻳﺰﻧﺪ و ﺣﺴﻦ ﺑﻴﻦ ﺳﻨﮕﻬﺎ ﻣﺪﻓﻮن ﻣﻴﺸﻮد ‪ .‬ﺷﻤﺎ ﺑﺎﻳﺪ ﺑﻪ ﺣﺴﻦ‬
‫ﻛﻤﻚ ﻛﻨﻴﺪ ﺗﺎ درب ﻏﺎر را ﺑﺎز ﻛﻨﺪ ‪.‬‬
‫و اﻣﺎ ورودي ﻫﺎي ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ ‪:‬‬
‫‬
‫در ﺧﻂ اول ﻳﻚ ‪ int‬ﺑﻪ ﺷﻤﺎ داده ﻣﻲ ﺷﻮد ﻛﻪ اﻧﺪازه آراﻳﻪ ﺻﺪا ﻫﺎ را ﻣﺸﺨﺺ ﻣﻲ ﻛﻨﺪ‪.‬‬
‫‬
‫در ﺧﻂ دوم ﻳﻚ آراﻳﻪ از ‪ int‬ﻛﻪ ﺑﺎ ﻓﺎﺻﻠﻪ از ﻳﻜﺪﻳﮕﺮ ﺟﺪا ﺷﺪه اﻧﺪ ﺑﻪ ﺷﻤﺎ داده ﻣﻲ ﺷﻮد‪.‬‬
‫‬
‫در ﺧﻂ ﺳﻮم ﻳﻚ ‪ int‬ﺑﻪ ﺷﻤﺎ داده ﻣﻲ ﺷﻮد ﻛﻪ ﻫﻤﺎن ﺣﺪ ﺑﻴﺸﻴﻨﻪ ﺻﺪا )‪ (X‬اﺳﺖ‪.‬‬
‫‬
‫در ﺧﻂ ﭼﻬﺎرم ﻳﻚ ‪ int‬ﺑﻪ ﺷﻤﺎ داده ﻣﻲ ﺷﻮد‪ ،‬ﻛﻪ آن ﻣﻘﺪار اوﻟﻴﻪ ﺻﺪاﺋﻲ اﺳﺖ ﻛﻪ ﺣﺴﻦ آواز ﺧﻮد را ﺑﺎ‬
‫آن ﺷﺮوع ﻣﻲ ﻛﻨﺪ‪.‬‬
‫ﺧﺮوﺟﻲ ﻧﻴﺰ ﺑﻴﺸﻴﻨﻪ ﺻﺪاﻳﻲ اﺳﺖ ﻛﻪ ﺣﺴﻦ ﻣﻴﺘﻮاﻧﺪ ﭼﻬﭽﻪ ﺧﻮد را ﺑﻪ آن ﺣﺪ ﺑﺮﺳﺎﻧﺪ‪ .‬اﮔﺮ ﺑﻪ ﻫﻴﭻ ﻃﺮﻳﻘﻲ‬
‫ﻧﺘﻮان ﻃﻮري آواز ﺧﻮاﻧﺪ ﻛﻪ ﻃﻨﻴﻦ ﺻﺪا از ﺣﺪ ﺑﻴﺸﻴﻨﻪ ﺑﻴﺸﺘﺮ و از ‪ 0‬ﻛﻤﺘﺮ ﻧﺸﻮد‪ ،‬ﻣﻘﺪار ‪ -1‬را ﺑﺮﮔﺮداﻧﻴﺪ‪.‬‬
‫ﺣﺴﻦ ﻣﻴﺪاﻧﺪ ‪:‬‬
‫ ﻃﻮل آراﻳﻪ روي دﻳﻮار ﻏﺎر ﺑﻴﻦ ‪ 1‬ﺗﺎ ‪ 50‬اﺳﺖ‪.‬‬
‫ ﺣﺪ ﺑﻴﺸﻴﻨﻪ ﻋﺪدي ﺑﻴﻦ ‪ 1‬ﺗﺎ ‪ 1000‬اﺳﺖ‪.‬‬
‫ ﻫﺮ ﻣﻘﺪار داﺧﻞ آراﻳﻪ ﻣﻲ ﺗﻮاﻧﺪ ﺑﻴﻦ ‪ 1‬ﺗﺎ ﺣﺪ ﺑﻴﺸﻴﻨﻪ ﺑﺎﺷﺪ‪.‬‬
‫ ﻣﻘﺪار اوﻟﻲ ﻧﻴﺰ ﺑﻴﻦ ‪ 0‬ﺗﺎ ﺣﺪ ﺑﻴﺸﻴﻨﻪ اﺳﺖ‪.‬‬
‫ﻣﺜﺎﻟﻬﺎي روي دﻳﻮار ﻏﺎر !! ‪:‬‬
‫‪Input :‬‬
‫‪4‬‬
‫‪15 2 9 10‬‬
‫‪8‬‬
‫‪20‬‬
‫‪Out put :‬‬
‫‪-1‬‬
‫‪Input :‬‬
‫‪3‬‬
‫‪537‬‬
‫‪5‬‬
‫‪10‬‬
‫‪Output :‬‬
‫‪10‬‬
‫ﺣﺴﻦ اﺳﻴﺮ ﻣﻲ ﺷﻮد‬
‫در ﻫﻨﮕﺎم اﺟﺮاي ﺗﺼﻨﻴﻒ‪ ،‬ﺻﺪاي زﻳﺒﺎي ﺣﺴﻦ ﺑﺎﻋﺚ ﻣﻲ ﺷﻮد ﻛﻪ ﻣﻮﺟﻮدات وﺣﺸﻲ ﭘﺸﺖ ﻛﻮه از ﺧﻮاب ﺑﭙﺮﻧﺪ‬
‫و او را ﺑﻪ اﺳﺎرت ﺑﮕﻴﺮﻧﺪ‪ .‬آﻧﻬﺎ ﺑﻌﺪ از اﻳﻨﻜﻪ او را ﺑﻪ ﺳﺮزﻣﻴﻦ ﺧﻮد ﺑﺮدﻧﺪ ﻳﻚ ﺗﻜﻪ ﭘﺎرﭼﻪ در دﻫﻨﺶ ﻗﺮار‬
‫دادﻧﺪ ﺗﺎ دﻳﮕﺮ ﺻﺪاﻳﺶ در ﻧﻴﺎﻳﺪ و ﺑﻪ او ﺗﻌﺪادي ﺳﻄﻞ رﻧﮓ دادﻧﺪ ‪.‬‬
‫ﻣﻮﭘﻚ ﻫﺎ )ﻣﻮﺟﻮدات وﺣﺸﻲ ﭘﺸﺖ ﻛﻮه( ﻫﺮ وﻗﺖ ﺷﺨﺼﻲ را ﺑﻪ اﺳﺎرت ﻣﻲ ﮔﻴﺮﻧﺪ او را وادار ﻣﻲ ﻛﻨﻨﺪ ﻛﻪ‬
‫ﺟﺪول ﻫﺎي ﻛﻨﺎر ﺧﻴﺎﺑﺎن را )ﻫﺮ ﭼﻨﺪ رﻧﮕﺶ ﻫﻨﻮز ﻧﺮﻓﺘﻪ ﺑﺎﺷﺪ( ﺑﻪ ﺷﻜﻞ اﻟﮕﻮي ﻣﻮرد ﻧﻈﺮ آﻧﻬﺎ رﻧﮓ ﻛﻨﺪ و‬
‫از آﻧﺠﺎﻳﻲ ﻛﻪ در ﺳﺮزﻣﻴﻦ آﻧﻬﺎ ﻗﻠﻤﻮ وﺟﻮد ﻧﺪارد ﺣﺴﻦ ﻣﺠﺒﻮر اﺳﺖ از ﻓﻦّ ﭘﺎﭼﻴﺪن رﻧﮓ اﺳﺘﻔﺎده ﻛﻨﺪ ‪.‬‬
‫ﭘﺎﭼﻴﺪن رﻧﮓ ﺑﻪ اﻳﻦ ﺻﻮرت اﺳﺖ ﻛﻪ ﺣﺴﻦ ﻳﻚ ﺳﻄﻞ رﻧﮓ از رﻧﮓ ‪ x‬رو ﺑﺮﻣﻲ دارد و ﺑﺎ ﻳﻚ ﺣﺮﻛﺖ‬
‫ﭘﺎﺷﺶ )ﭘﺎﭼﺶ( ﺟﺪول ﻫﺎي ‪i‬ام ﺗﺎ ‪j‬ام را ﺑﻪ رﻧﮓ ‪ x‬در ﻣﻲ آورد ‪ .‬ﻫﻤﭽﻨﻴﻦ ﺣﺴﻦ ﻣﻲ داﻧﺪ ﻛﻪ اﮔﺮ از‬
‫ﺗﻌﺪاد ﺳﻄﻞ رﻧﮓ ﻫﺎي زﻳﺎدي اﺳﺘﻔﺎده ﻛﻨﺪ ﻣﻮﭘﻚ ﻫﺎ ﻋﺼﺒﺎﻧﻲ ﻣﻲ ﺷﻮﻧﺪ ‪ ،‬ﺑﻨﺎﺑﺮاﻳﻦ ﻣﻲ ﺧﻮاﻫﺪ ﺑﺎ ﻛﻤﺘﺮﻳﻦ‬
‫ﺗﻌﺪاد ﺳﻄﻞ رﻧﮓ ﺟﺪول را ﻣﺜﻞ اﻟﮕﻮي دﻟﺨﻮاه آﻧﻬﺎ در ﺑﻴﺎورد ‪ .‬ﻣﺜﻼ وﻗﺘﻲ ﺑﻪ ﺣﺴﻦ ﻣﻲ ﮔﻮﻳﻨﺪ ﻛﻪ ‪5‬‬
‫ﺟﺪول را ﺑﻪ ﺻﻮرت ‪ YGRGY‬رﻧﮓ ﻛﻦ ‪:‬‬
‫اﺑﺘﺪا رﻧﮓ ‪ Y‬را ﺑﺮ ﻣﻲ دارد و روي ﺟﺪاول ‪ 1‬ﺗﺎ ‪ 5‬ﻣﻲ ﭘﺎﭼﺪ ‪(YYYYY) .‬‬
‫ﺳﭙﺲ رﻧﮓ ‪ R‬را ﺑﺮﻣﻲ دارد و روي ﺟﺪاول ‪ 2‬ﺗﺎ ‪ 4‬ﻣﻲ ﭘﺎﭼﺪ ‪(YRRRY) .‬‬
‫و در آﺧﺮ رﻧﮓ ‪ G‬را ﺑﺮداﺷﺘﻪ و روي ﺟﺪول ‪ 3‬ﻣﻲ ﭘﺎﺷﺪ ‪(YRGRY) .‬‬
‫ﺷﻤﺎ ﺑﺎﻳﺪ ﺑﻪ او در اﻳﻦ راه ﻛﻤﻚ ﻛﻨﻴﺪ و ﺑﺮﻧﺎﻣﻪ اي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﻛﻤﺘﺮﻳﻦ ﺗﻌﺪاد ﺳﻄﻞ رﻧﮓ را ﻣﺸﺨﺺ ﻛﻨﺪ ‪.‬‬
‫ورودي ﻳﻚ رﺷﺘﻪ ﻛﺎراﻛﺘﺮ اﺳﺖ ﻛﻪ اﻟﮕﻮي رﻧﮕﻲ ﻣﻮرد ﻧﻈﺮ ﻣﻮﭘﻚ ﻫﺎ را ﻧﺸﺎن ﻣﻲ دﻫﺪ و ﺧﺮوﺟﻲ ﻧﻴﺰ ﺣﺪاﻗﻞ‬
‫ﺗﻌﺪاد ﺳﻄﻞ رﻧﮓ ﻫﺎ اﺳﺖ ‪.‬‬
‫ﻣﻮﭘﻚ ﻫﺎ ﮔﻔﺘﻪ اﻧﺪ ﻛﻪ ‪:‬‬
‫‬
‫‬
‫رﻧﮓ ﻫﺎ ﻫﻤﻪ از ﺣﺮوف ﺑﺰرگ اﻧﮕﻠﻴﺴﻲ ﻫﺴﺘﻨﺪ ‪(A-Z) .‬‬
‫ﺗﻌﺪاد ﺟﺪول ﻫﺎ ﺑﻴﻦ ‪ 1‬ﺗﺎ ‪ 50‬ﻣﻲ ﺗﻮاﻧﺪ ﺑﺎﺷﺪ ‪.‬‬
‫ﻣﺜﺎﻟﻬﺎﻳﻲ ﻛﻪ ﺣﺴﻦ در ذﻫﻦ ﺧﻮد ﻣﺮور ﻣﻲ ﻛﻨﺪ ‪:‬‬
‫ورودي ‪:‬‬
‫‪YRBRY‬‬
‫ﺧﺮوﺟﻲ ‪:‬‬
‫‪3‬‬
‫ورودي ‪:‬‬
‫‪RCRBRGR‬‬
‫ﺧﺮوﺟﻲ ‪:‬‬
‫‪4‬‬
‫ﺣﺮف آﺧﺮ‬
‫ﺣﺴﻦ ﻣﻨﺘﻈﺮ ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﺷﻤﺎﺳﺖ ﺗﺎ ﺑﻪ او ﻛﻤﻚ ﻛﻨﻴﺪ ‪ .‬ﺷﻤﺎ ﻓﺮﺻﺖ دارﻳﺪ ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﺧﻮد را ﺑﻔﺮﺳﺘﻴﺪ ﺗﺎ‬
‫ﺣﺴﻦ ﺑﻮﺳﻴﻠﻪ واﻳﻤﻜﺲ آﻧﻬﺎ را درﻳﺎﻓﺖ ﻛﻨﺪ ‪.‬‬
‫در ﺿﻤﻦ‪:‬‬
‫‬
‫ﺗﻨﻬﺎ ﻛﺪ ﻣﻨﺒﻊ ﺑﺮﻧﺎﻣﻪ ﻫﻮد در زﺑﺎن ﻫﺎي ‪Java‬و‪ C/C++‬را ارﺳﺎل ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫ﺑﺮاي ﺗﻤﺎم ﺳﻮاﻻت از ورودي و ﺧﺮوﺟﻲ اﺳﺘﺎﻧﺪارد اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪.‬‬
‫‬
‫ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﻴﺪ ﻛﻪ زﻣﺎن اﺟﺮاي ﺑﺮﻧﺎﻣﻪ اي ﺑﻪ زﺑﺎن ‪ C/C++‬ﻛﻪ در ﺣﺪود ‪ 108‬ﻋﻤﻠﻴﺎت اﻧﺠﺎم دﻫﺪ‪،‬‬
‫ﺗﻘﺮﻳﺒﺎ ﻳﻚ ﺛﺎﻧﻴﻪ ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬
‫ﻣﺤﺪودﻳﺖ زﻣﺎﻧﻲ ﺑﺮاي ﺗﻤﺎم ﺳﻮاﻻت ‪ 4‬ﺛﺎﻧﻴﻪ ﻣﻲ ﺑﺎﺷﺪ‪.‬‬
‫‬
‫ﻛﺎر ﮔﺮوﻫﻲ و ﻫﻢ ﻓﻜﺮي داﻧﺸﺠﻮﻳﺎن در ﻳﺎﻓﺘﻦ داده ﺳﺎﺧﺘﺎر ﻫﺎ و اﻟﮕﻮرﻳﺘﻢ ﻫﺎي ﻣﺮﺗﺒﻂ ﺑﺎ ﺳﻮال ﻫﺎي داده‬
‫ﺷﺪه اﻣﺮي ﭘﺴﻨﺪﻳﺪه اﺳﺖ‪ ،‬وﻟﻲ داﻧﺸﺠﻮﻳﺎن ﺣﻖ اﺳﺘﻔﺎده ﻳﺎ روﻳﺖ ‪ Soucre Code‬ﻳﻜﺪﻳﮕﺮ را ﻧﺪارﻧﺪ و‬
‫ﻛﺪ ﺑﺮﻧﺎﻣﻪي ﻫﺮ داﻧﺸﺠﻮ ﺑﺎﻳﺪ ﺻﺮﻓﺎ ﺗﻮﺳﻂ وي ﻧﻮﺷﺘﻪ ﺷﻮد‪ .‬ﻫﻤﭽﻨﻴﻦ اﺳﺘﻔﺎده ﻫﺮﮔﻮﻧﻪ ﻛﺪ ﻣﻨﺒﻊ ﺑﺎز )ﺣﺘﻲ‬
‫ﻣﻮارد ﻣﻨﺸﺮ ﺷﺪه در اﻳﻨﺘﺮﻧﺖ( ﻣﺠﺎز ﻧﻤﻲ ﺑﺎﺷﺪ‪ .‬ﭘﺎيﺑﻨﺪي ﺑﻪ اﻳﻦ اﻣﺮ ﺟﺰو ﺷﺮاﻳﻂ اﻟﺰاﻣﻲ ﺑﺮاي‬
‫ﮔﺬراﻧﺪن اﻳﻦ درس ﻣﻲ ﺑﺎﺷﺪ‪.‬‬
‫‬
‫روش ارﺳﺎل ﻣﺘﻌﺎﻗﺒﺎ اﻋﻼم ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬
‫‬
‫‬
‫ﻣﻮﻓﻖ ﺑﺎﺷﻴﺪ‬