AS3_v2.pdf

‫ﺑﻪ ﻧﺎﻡ ﻳﺰﺩﺍﻥ ﭘﺎﻙ‬
‫ﺩﺭﺱ ‪ :‬ﻣﺒﺎﻧﻲ ﺑﺮﻧﺎﻣﻪﺳﺎﺯﻱ – ﮔﺮﻭﻩ ‪(40153) 2‬‬
‫ﻣﺪﺭﺱ ‪ :‬ﺍﻣﻴﺪ ﺟﻌﻔﺮﻱ ﻧﮋﺍﺩ‬
‫ﺗﻤﺮﻳﻦ ﺳﺮﻱ ﺳﻮﻡ‬
‫ﺁﺧﺮﻳﻦ ﻣﻬﻠﺖ ﺍﺭﺳﺎﻝ‪ 27 :‬ﺍﺭﺩﻳﺒﻬﺸﺖ ‪ -1392‬ﺳﺎﻋﺖ ‪23:59‬‬
‫ﻧﻜﺎﺕ ﻛﻠﻲ ‪:‬‬
‫• ﻫﺪﻑ ﺍﻳﻦ ﺗﻤﺮﻳﻦ ﺁﺷﻨﺎﻳﻲ ﺑﺎ ﻣﻔﺎﻫﻴﻢ ﺁﺭﺍﻳﻪ ﻭ ﺭﺷﺘﻪ ﺍﺳﺖ‪.‬‬
‫• ﭘﺎﺳﺦﻫﺎﻱ ﺧﻮﺩ ﺭﺍ ﺩﺭ ﺳﻴﺴﺘﻢ ﺩﺍﻭﺭﻱ ﺁﻥﻻﻳﻦ ﻭ ﺣﺪﺍﻛﺜﺮ ﺗﺎ ‪ 27‬ﺍﺭﺩﻳﺒﻬﺸﺖ ﻣﺎﻩ ‪ ،1392‬ﺳﺎﻋﺖ ‪ 23:59‬ﺁﭘﻠﻮﺩ‬
‫ﻛﻨﻴﺪ‪.‬‬
‫• ﺩﺭ ﺗﻤﺮﻳﻦﻫﺎﻱ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ‪ ،‬ﮔﺬﺍﺷﺘﻦ ﻛﺎﻣﻨﺖ ﻧﻤﺮﻩﻱ ﺍﺿﺎﻓﻲ ﺩﺍﺭﺩ‪.‬‬
‫• ﺑﻪ ﺍﺯﺍﻱ ﻫﺮ ﺳﺎﻋﺖ ﺗﺎﺧﻴﺮ‪ 5 ،‬ﺩﺭﺻﺪ ﺍﺯ ﻧﻤﺮﻩ ﻛﺴﺮ ﺧﻮﺍﻫﺪ ﺷﺪ)ﺗﺎ ‪ 6‬ﺳﺎﻋﺖ(‪ .‬ﺗﺎﺧﻴﺮ ﺑﻴﺶ ﺍﺯ ‪ 6‬ﺳﺎﻋﺖ ﺗﺎ ﻳﻚ ﺭﻭﺯ‬
‫‪ 40‬ﺩﺭﺻﺪ ﻧﻤﺮﻩ ﺭﺍ ﻛﺴﺮ ﺧﻮﺍﻫﺪ ﻧﻤﻮﺩ ﻭ ﺗﺎﺧﻴﺮ ﺩﻭ ﺭﻭﺯ ‪ 60‬ﺩﺭﺻﺪ ﻧﻤﺮﻩ ﺭﺍ‪ .‬ﺗﺎﺧﻴﺮ ﺑﻴﺶ ﺍﺯ ﺩﻭ ﺭﻭﺯ ﻗﺎﺑﻞ ﻗﺒﻮﻝ‬
‫ﻧﻴﺴﺖ ﻭ ﻧﻤﺮﻩﺍﻱ ﺗﻌﻠﻖ ﻧﺨﻮﺍﻫﺪ ﮔﺮﻓﺖ‪.‬‬
‫• ﺯﺑﺎﻥ ﻣﻮﺭﺩ ﻧﻈﺮ ﺑﺮﺍﻱ ﺍﻳﻦ ﺳﺮﻱ‪ ،‬ﺯﺑﺎﻥ ‪ C‬ﺍﺳﺖ ﻧﻪ ‪ . C++‬ﻃﺒﻴﻌﺘﺎ ﺑﻪ ﻛﺴﺎﻧﻲ ﻛﻪ ﺑﻪ ﺯﺑﺎﻥ ‪ C‬ﻛﺪ ﻧﺰﻧﻨﺪ ﻧﻤﺮﻩﺍﻱ‬
‫ﺗﻌﻠﻖ ﻧﺨﻮﺍﻫﺪ ﮔﺮﻓﺖ‪.‬‬
‫• ﺑﺮﺍﻱ ﺗﺴﺖ ﺑﺮﻧﺎﻣﻪﻫﺎﻱ ﺧﻮﺩﺗﺎﻥ‪ ،‬ﻣﻲﺗﻮﺍﻧﻴﺪ ﺍﺯ ﺩﺳﺘﻮﺭ)”‪ system(“pause‬ﺩﺭ ﺍﻧﺘﻬﺎﻱ ﺑﺮﻧﺎﻣﻪﻫﺎﻳﺘﺎﻥ ﺍﺳﺘﻔﺎﺩﻩ‬
‫ﻛﻨﻴﺪ ﺍﻣﺎ ﺍﻛﻴﺪﺍً ﺗﺬﻛﺮ ﻣﻲﺩﻫﻴﻢ ﻛﻪ ﺍﻳﻦ ﺩﺳﺘﻮﺭ ﺭﺍ ﻗﺒﻞ ﺍﺯ ﻓﺮﺳﺘﺎﺩﻥ‪ ،‬ﺍﺯ ﺁﺧﺮ ﻫﻤﻪﻱ ﺑﺮﻧﺎﻣﻪﻫﺎﻳﺘﺎﻥ ﭘﺎﻙ ﻛﻨﻴﺪ‪.‬‬
‫• ﺳﻴﺴﺘﻢ ﺗﺼﺤﻴﺢ ﺍﻳﻦ ﺗﻤﺮﻳﻦ ﺑﻪ ﺻﻮﺭﺕ ﺧﻮﺩﻛﺎﺭ ﻭ ﺁﻧﻼﻳﻦ ﺍﺳﺖ‪ .‬ﻟﺬﺍ ﺑﺮﻧﺎﻣﻪﻱ ﺷﻤﺎ ﺩﺭ ﻫﻤﺎﻥ ﻟﺤﻈﻪ ﺩﺭ ﺳﻴﺴﺘﻢ‬
‫‪ online judge‬ﺗﺼﺤﻴﺢ ﺧﻮﺍﻫﺪ ﺷﺪ‪ .‬ﭘﺲ ﺣﺘﻤﺎ ﻧﻜﺎﺕ ﮔﻔﺘﻪﺷﺪﻩ ﺭﺍ ﺭﻋﺎﻳﺖ ﻓﺮﻣﺎﻳﻴﺪ ﺗﺎ ﺑﻪ ﻣﺸﻜﻠﻲ ﺑﺮﻧﺨﻮﺭﻳﺪ‪.‬‬
‫• ﻣﺴﻠﻢ ﺍﺳﺖ ﻛﻪ ﻫﻢﻓﻜﺮﻱ ﺑﺎ ﺑﻘﻴﻪ ﺩﺍﻧﺶﺟﻮﻳﺎﻥ ﺍﻳﺮﺍﺩﻱ ﻧﺪﺍﺭﺩ ﻭﻟﻲ ﻫﺮﮔﻮﻧﻪ ﻛﭙﻲﺑﺮﺩﺍﺭﻱ ﭼﻪ ﺍﺯ ﺳﺎﻳﺮ ﺩﻭﺳﺘﺎﻥ ﻭ ﻳﺎ‬
‫ﺍﺯ ﻛﺪﻫﺎﻱ ﺁﻣﺎﺩﻩ ﺩﺭ ﺍﻳﻨﺘﺮﻧﺖ ﺗﺨﻠﻒ ﻣﺤﺴﻮﺏ ﻣﻲﺷﻮﺩ ﻭ ﻧﻤﺮﻩﺍﻱ ﺗﻌﻠﻖ ﻧﺨﻮﺍﻫﺪ ﮔﺮﻓﺖ ﻭ ﺑﺎ ﻣﺘﺨﻠﻔﻴﻦ ﺑﺮﺧﻮﺭﺩ‬
‫ﺧﻮﺍﻫﺪ ﺷﺪ‪ .‬ﺍﻳﻦ ﺑﺮﺧﻮﺭﺩ ﺷﺎﻣﻞ ﺗﻘﻠﺐﺩﻫﻨﺪﻩ ﻭ ﺗﻘﻠﺐﮔﻴﺮﻧﺪﻩ ﺧﻮﺍﻫﺪ ﺑﻮﺩ )ﺷﺪﻳﺪ!!!(‪.‬‬
‫• ﻗﻄﻊ ﺑﻮﺩﻥ ﺍﻳﻨﺘﺮﻧﺖ ﺧﻮﺍﺑﮕﺎﻩ‪ ،‬ﻛﻨﺪﻱ ﺍﻳﻨﺘﺮﻧﺖ‪ ،‬ﺗﻤﺎﻡ ﺷﺪﻥ ﻛﺎﺭﺕ ﻭ ‪ ...‬ﺑﻪ ﻫﻴﭻ ﻭﺟﻪ ﺩﻻﻳﻞ ﻣﻮﺟﻬﻲ ﻧﻴﺴﺘﻨﺪ‪.‬‬
‫ﺑﻨﺎﺑﺮﺍﻳﻦ ﭘﻴﺸﻨﻬﺎﺩ ﻣﻲﻛﻨﻴﻢ ﺗﻤﺎﺭﻳﻦ ﺧﻮﺩ ﺭﺍ ﻛﻤﻲ ﺯﻭﺩﺗﺮ ﺍﺭﺳﺎﻝ ﻛﻨﻴﺪ ﺗﺎ ﺑﻪ ﻣﺸﻜﻞ ﺑﺮﻧﺨﻮﺭﻳﺪ‪.‬‬
‫• ﺳﻮﺍﻻﺕ ﺧﻮﺩ ﺭﺍ ﺩﺭ ‪ piazza‬ﻣﻄﺮﺡ ﻛﻨﻴﺪ‪.‬‬
‫ﺍﻋﺘﺒﺎﺭﺳﻨﺠﻲ )‪ 35) (Validation.c‬ﻧﻤﺮﻩ(‬
‫ﺣﺴﻨﻲ ﻳﻚ ﺩﺍﻧﺶﺁﻣﻮﺯ ﻧﺨﺒﻪ ﺍﺳﺖ ﻛﻪ ﺗﺎﺯﻩ ﺑﺎ ﻋﺒﺎﺭﺕﻫﺎﻱ ﺭﻳﺎﺿﻲ ﺁﺷﻨﺎ ﺷﺪﻩ ﺍﺳﺖ‪ .‬ﺩﺭ ﺍﻳﻦ ﺗﻤﺮﻳﻦ ﺍﺯ ﺷﻤﺎ ﻣﻲﺧﻮﺍﻫﻴﻢ ﻛﻪ ﺑﻪ ﺣﺴﻨﻲ‬
‫ﻛﻤﻚ ﻛﻨﻴﺪ ﺑﻪ ﺍﻳﻦ ﺻﻮﺭﺕ ﻛﻪ ﺍﻭ ﻳﻚ ﻋﺒﺎﺭﺕ ﺭﻳﺎﺿﻲ ﻭﺍﺭﺩ ﻣﻲﻛﻨﺪ ﻭ ﺷﻤﺎ ﺑﺎﻳﺪ ﺑﻪ ﺍﻭ ﺑﮕﻮﻳﻴﺪ ﻛﻪ ﻋﺒﺎﺭﺕ ﻭﺍﺭﺩ ﺷﺪﻩ ﻣﻌﺘﺒﺮ ﺍﺳﺖ ﻳﺎ ﺧﻴﺮ‪.‬‬
‫ﻫﻤﺎﻥ ﻃﻮﺭ ﻛﻪ ﻣﻲﺩﺍﻧﻴﺪ ﻫﺮ ﻋﺒﺎﺭﺕ ﺭﻳﺎﺿﻲ ﺍﺯ ﺗﻌﺪﺍﺩﻱ ﻋﻤﻠﮕﺮ ﻭ ﻋﻤﻠﻮﻧﺪ ﺗﺸﻜﻴﻞ ﺷﺪﻩ ﺍﺳﺖ‪ .‬ﻋﻤﻠﮕﺮﻫﺎﻱ ﺍﻳﻦ ﺗﻤﺮﻳﻦ ﻋﺒﺎﺭﺗﻨﺪ ﺍﺯ ﺟﻤﻊ‪،‬‬
‫ﺗﻔﺮﻳﻖ‪ ،‬ﺿﺮﺏ ﻭ ﺗﻘﺴﻴﻢ )‪ * ،- ،+‬ﻭ ‪ . (/‬ﻫﺮ ﻋﻤﻠﮕﺮ ﺑﺎﻳﺪ ﺣﺘﻤﺎً ﺩﻭ ﻋﻤﻠﻮﻧﺪ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬ﻋﻤﻠﻮﻧﺪﻫﺎ ﻣﻲﺗﻮﺍﻧﺪ ﻋﺪﺩ‪ ،‬ﺣﺮﻭﻑ ﻭ ﻳﺎ ﻋﺒﺎﺭﺕ‬
‫ﺭﻳﺎﺿﻲ ﻣﻌﺘﺒﺮ ﺑﺎﺷﻨﺪ‪.‬‬
‫ﻫﻤﭽﻨﻴﻦ ﻋﺒﺎﺭﺍﺕ ﺩﺍﺩﻩ ﺷﺪﻩ ﻣﻲﺗﻮﺍﻧﻨﺪ ﭘﺮﺍﻧﺘﺰﮔﺬﺍﺭﻱ ﺷﺪﻩﺍﻧﺪ‪ .‬ﭘﺮﺍﻧﺘﺰﮔﺬﺍﺭﻱ ﻋﺒﺎﺭﺕ ﻫﻢ ﺑﺎﻳﺪ ﺑﻪ ﺩﺭﺳﺘﻲ ﺍﻧﺠﺎﻡ ﺷﺪﻩ ﺑﺎﺷﺪ ﻳﻌﻨﻲ ﻫﻤﻪ‬
‫ﭘﺮﺍﻧﺘﺰﻫﺎ‪ ،‬ﺁﻛﻮﻻﺩﻫﺎ ﻭ ﻛﺮﻭﺷﻪﻫﺎ ﺑﻪ ﺩﺭﺳﺘﻲ ﺑﺎﺯ ﻭ ﺑﺴﺘﻪ ﺷﺪﻩ ﺑﺎﺷﻨﺪ‪.‬‬
‫ﺍﮔﺮ ﻋﺒﺎﺭﺕ ﻭﺍﺭﺩ ﺷﺪﻩ ﺍﻳﻦ ﺧﻮﺍﺹ ﺭﺍ ﺩﺍﺷﺖ ‪ YES‬ﻭ ﺍﮔﺮ ﻧﺪﺍﺷﺖ ‪ NO‬ﺭﺍ ﭼﺎپ ﻛﻨﻴﺪ‪.‬‬
‫ﻣﺜﺎﻝ‪:‬‬
‫ﻭﺭﻭﺩﻱ‬
‫ﺧﺮﻭﺟﻲ‬
‫‪NO‬‬
‫‪YES‬‬
‫‪NO‬‬
‫ﺷﻤﺎﺭﻩ ﻣﺜﺎﻝ‬
‫))‪1 [{38+2-5}/(r5*2‬‬
‫])‪2 [{38+(a2-r5)}/(45*22+35‬‬
‫)}‪3 2+(/30-21+{9‬‬
‫ﻣﺮﺗﺐﺳﺎﺯﻱ )‪ 35)(InsertionSort.c‬ﻧﻤﺮﻩ(‬
‫ﺣﺴﻨﻲ ﻣﺎ ﺑﻪ ﺗﺎﺯﮔﻲ ﺑﺎ ﻣﻔﻬﻮﻡ ﻣﺮﺗﺐﺳﺎﺯﻱ ﻧﻴﺰ ﺁﺷﻨﺎ ﺷﺪﻩ ﺍﺳﺖ ﻭ ﭼﻨﺪ ﺍﻟﮕﻮﺭﻳﺘﻢ ﺑﺮﺍﻱ ﺍﻧﺠﺎﻡ ﺍﻳﻦ ﻛﺎﺭ ﻳﺎﺩ ﮔﺮﻓﺘﻪ ﺍﺳﺖ‪ .‬ﻳﻜﻲ ﺍﺯ‬
‫ﺍﻟﮕﻮﺭﻳﺘﻢﻫﺎﻳﻲ ﻛﻪ ﺣﺴﻨﻲ ﻳﺎﺩ ﮔﺮﻓﺘﻪ ﺍﺳﺖ ﺍﻟﮕﻮﺭﻳﺘﻢ ﻣﺮﺗﺐ ﺳﺎﺯﻱ ﺩﺭﺟﻲ ﺍﺳﺖ‪.‬‬
‫ﺍﻟﮕﻮﺭﻳﺘﻢ ﻣﺮﺗﺐﺳﺎﺯﻱ ﺩﺭﺟﻲ ﺑﻪ ﺍﻳﻦ ﺻﻮﺭﺕ ﻋﻤﻞ ﻣﻲﻛﻨﺪ ﻛﻪ ﺩﺭ ﻳﻚ ﺣﻠﻘﻪ ﺍﺯ ﺍﺑﺘﺪﺍﻱ ﺁﺭﺍﻳﻪ ﺷﺮﻭﻉ ﻣﻲﻛﻨﺪ ﻭ ﺩﺭ ﺩﻭﺭ ‪ i‬ﺍﻡ ﺍﺯ ﺍﺟﺮﺍﻳﺶ ﺑﻪ‬
‫ﺩﻧﺒﺎﻝ ﺟﺎﻱ ﻋﻨﺼﺮ ‪ i‬ﺍﻡ ﺑﻴﻦ ﻗﺒﻠﻲﻫﺎﻳﺶ ﻣﻲﮔﺮﺩﺩ‪ .‬ﻳﻌﻨﻲ ﺑﻴﻦ ﻋﻨﺎﺻﺮ ‪ 0‬ﺗﺎ ‪ i-1‬ﺍﻋﺪﺍﺩﻱ ﻛﻪ ﺍﺯ ﻋﻨﺼﺮ ‪ i‬ﺍﻡ ﺑﺰﺭﮔﺘﺮ ﺍﺳﺖ ﺭﺍ ﺑﻪ ﺭﺍﺳﺖ‬
‫ﺷﻴﻔﺖ ﻣﻲﺩﻫﺪ ﺗﺎ ﺑﻪ ﻋﺪﺩﻱ ﺑﺮﺳﺪ ﻛﻪ ﻛﻮﭼﻜﺘﺮ ﺍﺯ ﺁﻥ ﻋﻨﺼﺮ ﺍﺳﺖ ﻭ ﻋﻨﺼﺮ ‪ i‬ﺍﻡ ﺭﺍ ﺑﻌﺪ ﺍﺯ ﺁﻥ ﻋﺪﺩ ﻗﺮﺍﺭ ﻣﻲﺩﻫﺪ‪.‬‬
‫)ﺗﻮﺿﻴﺤﺎﺕ ﻛﺎﻣﻞ ﺩﺭ‪( http://en.wikipedia.org/wiki/Insertion_sort :‬‬
‫ﭼﻴﺰﻱ ﻛﻪ ﻧﻈﺮ ﺣﺴﻨﻲ ﺭﺍ ﺟﻠﺐ ﻛﺮﺩﻩ ﺍﺳﺖ‪ ،‬ﺟﺎﻳﮕﺎﻩ ﻋﻨﺎﺻﺮ ﺩﺭ ﺩﻭﺭﻫﺎﻱ ﻣﺨﺘﻠﻒ ﺍﺟﺮﺍﻱ ﺍﻟﮕﻮﺭﻳﺘﻢ ﺍﺳﺖ‪ .‬ﻳﻌﻨﻲ ﺩﻭﺳﺖ ﺩﺍﺭﺩ ﺑﺪﺍﻧﺪ ﻛﻪ‬
‫ﺁﺭﺍﻳﻪ ﭘﺲ ﺍﺯ ﻫﺮ ﺩﻭﺭ ﺍﺯ ﺍﺟﺮﺍﻱ ﺍﻟﮕﻮﺭﻳﺘﻢ ﺑﻪ ﭼﻪ ﺷﻜﻠﻲ ﺩﺭ ﻣﻲﺁﻳﺪ‪.‬‬
‫ﺩﺭ ﺍﻳﻦ ﺳﻮﺍﻝ ﺷﻤﺎ ﺑﺎﻳﺪ ﺍﺑﺘﺪﺍ ‪ n‬ﻛﻪ ﻧﺸﺎﻥﺩﻫﻨﺪﻩ ﺗﻌﺪﺍﺩ ﻋﻨﺎﺻﺮ ﺍﺳﺖ‪ ،‬ﺭﺍ ﺑﮕﻴﺮﻳﺪ‪ ،‬ﺳﭙﺲ ﺩﺭ ﻳﻚ ﺧﻂ ‪ n‬ﻋﺪﺩ ﺻﺤﻴﺢ ﺑﮕﻴﺮﻳﺪ ﻛﻪ ﺑﺎ ﻓﺎﺻﻠﻪ‬
‫ﺍﺯ ﻫﻢ ﺟﺪﺍ ﺷﺪﻩﺍﻧﺪ‪ ،‬ﺍﻋﺪﺍﺩ ﺭﺍ ﺑﻪ ﺗﺮﺗﻴﺐ ﻭﺭﻭﺩ‪ ،‬ﺩﺭ ﺁﺭﺍﻳﻪ ﻗﺮﺍﺭ ﺩﻫﻴﺪ ﻭ ﺩﺭ ﺁﺧﺮ ﻋﺪﺩ ‪ m‬ﺭﺍ ﮔﺮﻓﺘﻪ ﻭ ﺩﺭ ﺧﺮﻭﺟﻲ ﻧﺸﺎﻥ ﺩﻫﻴﺪ ﻛﻪ ﺍﮔﺮ ‪ m‬ﺩﻭﺭ‬
‫ﺍﺯ ﺍﻟﮕﻮﺭﻳﺘﻢ ﻣﺮﺗﺐﺳﺎﺯﻱ ﺩﺭﺟﻲ ﺭﻭﻱ ﺁﺭﺍﻳﻪ ﻭﺭﻭﺩﻱ ﺍﺟﺮﺍ ﻛﻨﻴﻢ‪ ،‬ﺁﺭﺍﻳﻪ ﺑﻪ ﭼﻪ ﺷﻜﻞ ﺩﺭ ﺧﻮﺍﻫﺪ ﺁﻣﺪ‪.‬‬
‫ﻣﺜﺎﻝ ‪:‬‬
‫ﻭﺭﻭﺩﻱ‬
‫ﺧﺮﻭﺟﻲ‬
‫‪13 40 91 11 10‬‬
‫‪-3 2 2 11 21 13 -8‬‬
‫‪-78 -34 -1 7 12 13 33 42 54 80 38‬‬
‫ﺷﻤﺎﺭﻩ ﻣﺜﺎﻝ‬
‫‪1 5‬‬
‫‪13 91 40 11 10‬‬
‫‪3‬‬
‫‪2 7‬‬
‫‪2 -3 11 2 21 13 -8‬‬
‫‪4‬‬
‫‪3 11‬‬
‫‪12 80 13 -1 33 -78 54 7 -34 42 38‬‬
‫‪10‬‬
‫ﺟﺴﺖﻭﺟﻮ )‪ 30) (Search.c‬ﻧﻤﺮﻩ(‬
‫ﺩﺭ ﺍﻳﻦ ﺳﻮﺍﻝ ﺟﻨﺎﺏ ﺣﺴﻨﻲ ﺍﺯ ﺷﻤﺎ ﻣﻲﺧﻮﺍﻫﺪ ﺑﻪ ﺍﻭ ﻛﻤﻚ ﻛﻨﻴﺪ ﺗﺎ ﺗﻌﺪﺍﺩ ﺗﻜﺮﺍﺭ ﻳﻚ ﻛﻠﻤﻪ ﺧﺎﺹ ﺭﺍ ﺩﺭ ﺗﻠﮕﺮﺍﻑﻫﺎﻳﻲ ﻛﻪ ﺩﺍﺭﺩ‪ ،‬ﺑﻪ ﺩﺳﺖ‬
‫ﺁﻭﺭﺩ‪.‬‬
‫ﻭﺭﻭﺩﻱ ﺑﻪ ﺍﻳﻦ ﺻﻮﺭﺕ ﺍﺳﺖ ﻛﻪ ﺍﺑﺘﺪﺍ ﻣﺘﻦ ﺗﻠﮕﺮﺍﻑ ﺭﺍ ﺩﺭ ﻳﻚ ﺧﻂ ﺩﺭﻳﺎﻓﺖ ﻣﻲﻛﻨﻴﺪ ﻭ ﺩﺭ ﺧﻂ ﺑﻌﺪﻱ ﻛﻠﻤﻪﺍﻱ ﺭﺍ ﻛﻪ ﺑﺎﻳﺪ ﺑﻪ ﺩﻧﺒﺎﻟﺶ‬
‫ﺑﮕﺮﺩﻳﺪ‪ ،‬ﻣﻲﮔﻴﺮﻳﺪ‪ .‬ﺑﻪ ﺩﻧﺒﺎﻝ ﻛﻠﻤﻪ ﺩﺍﺩﻩ ﺷﺪﻩ‪ ،‬ﺩﺭ ﻣﺘﻦ ﺑﮕﺮﺩﻳﺪ‪ ،‬ﺍﮔﺮ ﻭﺟﻮﺩ ﻧﺪﺍﺷﺖ‪ ،‬ﺗﻨﻬﺎ ﻳﻚ ﻋﺪﺩ ‪ 0‬ﭼﺎپ ﻛﻨﻴﺪ ﻭﻟﻲ ﺍﮔﺮ ﻭﺟﻮﺩ ﺩﺍﺷﺖ‬
‫ﺑﺎﻳﺪ ﺟﺎﻱ ﻛﻠﻤﻪ ﺩﺭ ﻣﺘﻦ ﺭﺍ ﻧﻴﺰ ﺑﻴﺎﺑﻴﺪ ﺑﻪ ﺍﻳﻦ ﺻﻮﺭﺕ ﻛﻪ ﺩﺭ ﺧﺮﻭﺟﻲ ﺳﻪ ﻋﺪﺩ ﭼﺎپ ﻣﻲﻛﻨﻴﺪ ﻛﻪ ﺍﻭﻟﻴﻦ ﻋﺪﺩ ﻧﺸﺎﻥ ﺩﻫﻨﺪﻩ ﺟﺎﻱ ﺍﻭﻟﻴﻦ‬
‫ﺗﻜﺮﺍﺭ ﻛﻠﻤﻪ ﺩﺭ ﻣﺘﻦ‪ ،‬ﻋﺪﺩ ﺑﻌﺪﻱ ﺗﻌﺪﺍﺩ ﺗﻜﺮﺍﺭ ﻛﻠﻤﻪ ﻭ ﺁﺧﺮﻳﻦ ﻋﺪﺩ ﺟﺎﻱ ﺁﺧﺮﻳﻦ ﺗﻜﺮﺍﺭ ﺩﺭ ﻣﺘﻦ ﺗﻠﮕﺮﺍﻑ ﺍﺳﺖ‪.‬‬
‫ﻣﺜﺎﻝ ‪:‬‬
‫ﻭﺭﻭﺩﻱ‬
‫ﺧﺮﻭﺟﻲ‬
‫‪0‬‬
‫‪9 3 41‬‬
‫‪19 1 19‬‬
‫‪0‬‬
‫ﺷﻤﺎﺭﻩ‬
‫ﻣﺜﺎﻝ‬
‫)‪1 Hello Hasani, U R a good student :‬‬
‫‪is‬‬
‫(‪2 Hasani nagu bala begu, tanbale tambala begu :‬‬
‫‪gu‬‬
‫!‪3 Dar forudast engar kaftari mikhord aab‬‬
‫‪kaftar‬‬
‫!!!‪4 C Programming is very lovely‬‬
‫‪Is‬‬
‫ﺍﺭﺯﺷﻤﻨﺪﺗﺮﻳﻦ ﻧﺎﺣﻴﻪ ﺷﻬﺮ )‪ 20) (MostValuable.c‬ﻧﻤﺮﻩ( )ﻧﻤﺮﻩ ﺍﺿﺎﻓﻲ(‬
‫ﺩﺭ ﺷﻬﺮﻱ ﻛﻪ ﺣﺴﻨﻲ ﺩﺭ ﺁﻥ ﺯﻧﺪﮔﻲ ﻣﻲﻛﻨﺪ ﺗﻌﺪﺍﺩﻱ ﺳﺎﺧﺘﻤﺎﻥ ﻭﺟﻮﺩ ﺩﺍﺭﺩ ﻛﻪ ﺍﺭﺯﺵ ﻫﺮ ﺳﺎﺧﺘﻤﺎﻥ ﺑﺎ ﻳﻚ ﻋﺪﺩ ﺻﺤﻴﺢ ﻣﺸﺨﺺ ﻣﻲ‬
‫ﺷﻮﺩ‪ .‬ﺩﺭ ﺍﻳﻦ ﺳﻮﺍﻝ ﺣﺴﻨﻲ ﺑﻪ ﻋﻨﻮﺍﻥ ﺁﺧﺮﻳﻦ ﻛﻤﻚ ﺍﺯ ﺷﻤﺎ ﻣﻲﺧﻮﺍﻫﺪ ﻛﻪ ﭘﺮﺍﺭﺯﺵﺗﺮﻳﻦ ﻧﺎﺣﻴﻪ ﺷﻬﺮ ﺭﺍ ﺑﺮﺍﻱ ﺍﻭ ﻣﺸﺨﺺ ﻛﻨﻴﺪ‪ .‬ﺍﻭ ﺷﻬﺮ‬
‫ﺭﺍ ﺑﻪ ﺻﻮﺭﺕ ﻳﻚ ﺁﺭﺍﻳﻪ ﺩﻭ ﺑﻌﺪﻱ ﺑﻪ ﺷﻤﺎ ﻣﻲﺩﻫﺪ ﻛﻪ ﻫﺮ ﺩﺭﺍﻳﻪ ﺁﻥ ﻣﺸﺨﺺ ﻛﻨﻨﺪﻩ ﺍﺭﺯﺵ ﻳﻚ ﺧﺎﻧﻪ ﺍﺳﺖ ﻭ ﺷﻤﺎ ﺑﺎﻳﺪ ﻣﺸﺨﺺ ﻛﻨﻴﺪ ﻛﻪ‬
‫ﻛﺪﺍﻡ ﻧﺎﺣﻴﻪ ﺍﺯ ﺍﻳﻦ ﺷﻬﺮ )ﻛﺪﺍﻡ ﺯﻳﺮ ﺁﺭﺍﻳﻪ ﻣﺴﺘﻄﻴﻞ ﺷﻜﻞ( ﺍﺭﺯﺷﻤﻨﺪﺗﺮ ﺍﺳﺖ ﻳﻌﻨﻲ ﺟﻤﻊ ﺍﺭﺯﺵ ﺧﺎﻧﻪﻫﺎﻱ ﻛﺪﺍﻡ ﻧﺎﺣﻴﻪ ﺍﺯ ﻫﻤﻪ ﻧﻮﺍﺣﻲ‬
‫ﺩﻳﮕﺮ ﺑﻴﺸﺘﺮ ﺍﺳﺖ‪.‬‬
‫ﻭﺭﻭﺩﻱ ﺑﻪ ﺍﻳﻦ ﺻﻮﺭﺕ ﺍﺳﺖ ﻛﻪ ﺍﺑﺘﺪﺍ ‪ m‬ﻛﻪ ﻧﺸﺎﻥ ﺩﻫﻨﺪﻩ ﺗﻌﺪﺍﺩ ﺳﻄﺮﻫﺎﺳﺖ ﻭ ﺳﭙﺲ ‪ n‬ﻳﻌﻨﻲ ﺗﻌﺪﺍﺩ ﺳﺘﻮﻧﻬﺎﻱ ﺷﻬﺮ ﺭﺍ ﺑﻪ ﺷﻤﺎ ﻣﻲ‬
‫ﺩﻫﺪ‪ .‬ﺳﭙﺲ ﺩﺭ ‪ m‬ﺧﻂ‪ n ،‬ﻋﺪﺩ ﻛﻪ ﺑﺎ ﻓﺎﺻﻠﻪ ﺍﺯ ﻫﻢ ﺟﺪﺍ ﺷﺪﻩ ﺍﻧﺪ ﺭﺍ ﻣﻲﺩﻫﺪ‪ ،‬ﻛﻪ ﺗﺸﻜﻴﻞ ﻳﻚ ﺁﺭﺍﻳﻪ ﺩﻭﺑﻌﺪﻱ ﻣﻲﺩﻫﺪ‪ .‬ﺍﻳﻦ ﺁﺭﺍﻳﻪ ﻧﺸﺎﻥ‬
‫ﺩﻫﻨﺪﻩ ﺍﺭﺯﺵ ﺧﺎﻧﻪ ﻫﺎﻱ ﺷﻬﺮ ﺍﺳﺖ‪ .‬ﺍﻳﻦ ﺍﺭﺯﺵﻫﺎ ﻣﻲﺗﻮﺍﻧﺪ ﻣﻨﻔﻲ ﻫﻢ ﺑﺎﺷﺪ‪.‬‬
‫ﺧﺮﻭﺟﻲ ﺷﻤﺎ ﻫﻢ ﺑﻪ ﻫﻤﻴﻦ ﺻﻮﺭﺕ ﻳﻚ ﺯﻳﺮ ﺁﺭﺍﻳﻪ ﺩﻭﺑﻌﺪﻱ ﻣﺴﺘﻄﻴﻞ ﺷﻜﻞ ﺍﺳﺖ ﻛﻪ ﺟﻤﻊ ﺍﺭﺯﺵ ﺧﺎﻧﻪﻫﺎﻳﺶ ﺍﺯ ﺟﻤﻊ ﺍﺭﺯﺵ ﺧﺎﻧﻪﻫﺎﻱ‬
‫ﻫﻤﻪ ﻧﻮﺍﺣﻲ ﺩﻳﮕﺮ ﺩﺭ ﺷﻬﺮ ﺑﻴﺸﺘﺮ ﺍﺳﺖ‪) .‬ﺯﻳﺮ ﺁﺭﺍﻳﻪ ﻣﻲ ﺗﻮﺍﻧﺪ ﻳﻚ ﺧﺎﻧﻪ ﺍﻱ ﺑﺎﺷﺪ(‬
‫ﻣﺜﺎﻝ ‪:‬‬
‫ﺷﻜﻞ‬
‫ﻭﺭﻭﺩﻱ‬
‫ﺧﺮﻭﺟﻲ‬
‫‪92‬‬
‫‪-4 1‬‬
‫‪-1 8‬‬
‫‪2‬‬
‫‪1‬‬
‫‪8‬‬
‫‪6‬‬
‫ﺷﻤﺎﺭﻩ‬
‫ﻣﺜﺎﻝ‬
‫‪1 65‬‬
‫‪0 -2 -7 0 -1‬‬
‫‪9 2 -6 2 0‬‬
‫‪-4 1 -4 1 0‬‬
‫‪-1 8 0 -2 1‬‬
‫‪-10 1 1 -5 6‬‬
‫‪-15 -1 1 5 -4‬‬
‫‪2 65‬‬
‫‪0 -2 -7 0 -1‬‬
‫‪9 2 -6 2 0‬‬
‫‪-4 1 -4 1 0‬‬
‫‪-1 8 0 -2 1‬‬
‫‪-10 6 1 -5 6‬‬
‫‪-15 -1 1 5 -4‬‬
‫ﻣﻮﻓﻖ ﺑﺎﺷﻴﺪ ﻭ ﺧﻮﺵ ‪‬‬