Assignment3.pdf

‫ درس زي‬
‫ﺗﻤﺮﻳﻦ ﺩﺭﺱ ﻣﺒﺎﻧﻲ ﺑﺮﻧﺎﻣﻪ ﺳﺎﺯﻱ‬
‫ﺳﺮﻱ ﺳﻮﻡ‬
‫ﭘﺎﻳﻴﺰ ‪ – 86‬ﺑﻬﺎﺭ ‪87‬‬
‫ﺩﺍﻧﺸﻜﺪﻩﻱ ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ‬
‫ﺣﺴﻦ ﺍﺳﻼﻣﻲ‬
‫ درس زي‬
‫
ت ‪:‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪2‬‬
‫ ارل ر ‪ 12 /4 :‬‬
‫ا ي از ت ‪
5‬د آ ه آام ‪ 100‬دارد‪.‬‬
‫ ‪% 3‬ال ا(ري ا' و ‪%‬ا‪$‬ت ‪ !"#‬ي ا‪ *+‬دارد آ ا ـي اـ‬
‫"! در ي ر ‪( #‬ظ &
اه‪ )$# $‬ا ا‪ 0‬ل ت ‪/‬د را ‪-.‬‬
‫ارل آد ‪ 1‬آ‪ #‬از ا ي ا‪(.#2
*+‬‬
‫
د;‪: #‬د‪ 9‬ا!‪8‬ت ‪7‬ن م اي ه ‪%‬ال راه ‪50‬ا! ـ اـ'‪
.‬ـ‬
‫@? ‪/‬ب ( آ‪ #‬د=ر <! در ت "‪.‬‬
‫‪ 6() *1‬ورودي و &و‪. 4‬ا‪3‬ت آ* ‪
0 *1‬ر د)‪ /‬در ه ‪.‬ال ‪+,-‬ـ* ‪#‬ـ‪ $‬د)ـ‬
‫آ‪ .$7‬در ﺹرت <‪ A‬از @? ‪ 9‬ا' ي ‪ 0‬د‪E .‬ان ‪D‬ل ا‪ !C0 0‬ـ‬
‫‪/‬و( ”‪ “NO” “YES‬ا' ! ”‪ “yes” “Yes‬و ا‪D‬ـل @ن ‪E‬ـ‪ 0 F‬ـن ـي ـ‬
‫‪/‬اه ‪ .‬ه‪ #H #I‬از ‪/‬و( ‪ :#= !C0‬د‪2‬ي در ‪/‬و( ﺱ‪.#‬‬
‫
ا !ل زد هي ﺹرت ‪/‬دآر ﻁ ‪
J‬ي آ‪#L‬ي و ون د‪;/‬ـ'‬
‫اﺱن ‪/ M#8N‬اه ‪ P/ .‬ه‪O #‬دا آ‪ #‬آ‪ R‬آ ‪;.‬ـ‪ Q‬ورودي و ‪/‬و(ـ‬
‫‪%‬ا‪$‬ت آ ‪P‬ر د‪ S#.‬در ه ‪%‬ال ‪ !C0‬د‪ '.‬آ‪#‬ـ‪
.‬ـي ‪N‬ـ‪/ M8‬و(ـ را ـ‬
‫هن ‪ T9‬آ در ﺹرت ‪%‬ا‪$‬ت ‪57 C0‬د‪.‬‬
‫
ي ‪1‬ادي ﺱ' داد د‪
.‬ﺱ' ه ﺱ' را در آ! از ‪#U 2‬‬
‫‪ V7‬ده‪ .‬در ‪ #H‬ا ﺹرت ي @ن ﺱ' را <اه‪) .'*0 #‬ا;! ﺱ! ـ را ـهـي‬
‫
‪I‬هي د‪ 9 2‬ا' ‪ ##X #U 2‬آ و ‪ #U 5 WD‬د‪
Y7 (.‬ـ (ـ ـ ‪8‬ـود'‬
‫ز اي ا(اي اآ‪P D‬ل ورودي د‪ '.‬آ‪#‬ـ و از ا;‪2‬ـر!‪R‬هـي ?‪#‬ـ اـ!‪C‬د‬
‫آ‪.#‬‬
‫‪%‬ا‪$‬ت ‪/‬د را در ‪0‬و درس )‪A (sharifcpp872‬ح آ‪.#‬‬
‫‪.‬ــ از ارــل ــهــ از آ‪L‬ــل ــن @?ــ در آ‪TL‬هــي اــ!ارد )ــ ‪ VS‬و ‪(g++‬‬
‫ا‪#P‬ن ﺹ آ‪ .#‬ا‪
0‬ي آ‪L‬ل "د اي ‪.#0‬‬
‫
ه را هن م ‪ !C0‬در ﺹرت ال ذ‪ #/‬آ‪ .#‬د‪ '.‬آ‪ #‬آ در م ـ‪%‬ا‪$‬ت‬
‫م وف ا‪#T2‬ﺱ آ=‪ ! J‬ا'‪ .‬ا‪ 0‬م ي د‪I@ ]#.‬‬
‫در ﺹرت ‪%‬ال ‪ !C0‬ي از @ن ‪%‬ال ‪ 0‬د‪.‬‬
‫
‪ 1‬از @‪ 9‬از ر‪ 'E‬آدن ‪/ Q;.‬و( و در! م هي ‪/‬د ا‪#P‬ن *!‪;* ،#‬ري‬
‫
م ”‪) “assign3_stdID‬م *;ر د‪ ]#.‬ه‪ #‬و ـوف آ=ـ‪ J‬ا‪#T2‬ﺱـ ـ!‬
‫د و ه‪ space _#‬اي ا! ‪ stdID .‬رِ دا"‪ .' O‬ـ‪ WD‬ا‪0‬ـ ـري‬
‫دا"‪ O‬ـ ‪ 87123456‬اـ' ـ
ﺱـ' ـم *;ـر ـ ”‪
“assign3_87123456‬ـ‪(.‬‬
‫ا‪O‬د آد و *هي ‪]*) .cpp‬ﻁ *هي ‪ .cpp‬و ه‪ * _#‬د‪2‬ي( را در @ن ‪ :‬و ‪YL‬‬
‫ا *;ر را ‪ ZIP‬آ‪
) #‬اي ا کر ک* ا' روي *;ـر ک‪#T‬ـ‪ b‬راـ' ک‪#‬ـ و از ـي ـز‬
‫ ‪ Send to‬و ‪ Compressed (Zipped) Folder YL‬را ا!<ب ک‪ .#‬ا کر ‪ * b‬م‬
‫‪ !/ assign3_stdID.zip‬د‪(.‬‬
‫در ?' * ‪ ZIP‬را @درس ‪ # sharifcpp872@gmail.com‬آ‪+ .#‬ـع ‪#‬ـ ـ‬
‫
هن م * ‪(assign3_87123456 WD) .
ZIP‬‬
‫ درس زي‬
‫ﺱ‪Td‬ي اول – ‪7‬ا!‪50:‬اري‬
‫‪/‬اه‪E R#‬رات !ازن را "<‪ -#‬ده‪E .R#‬رت !ازن ‪E‬ر‪ f‬ا' ک ه زﯾـ ‪E‬ـر‪ f‬از @ن کـ‬
‫
ﯾ‪ ’(‘ b‬ﯾ ‘{’ ﯾ ‘[’ @‪H‬ز ‪ ،‬ﯾ‪ ‘)‘ b‬ﯾ ‘}‘ ﯾ ‘]‘ )
‪7 (Q#‬ﯾـن ﯾ*!ـ ـ‪
.‬ـ ‪E‬ـان ‪D‬ـل‬
‫‪E‬رتهي "))()(()(" و "}{}}{)][}{({" !ازـ در ;‪9#‬ـ "))(" و ـ "{{}{{)()(" !ـازن ‪#‬ﺱـ!‪ .‬از‬
‫ ‪/‬اه‪
! R#‬اي !ازن دن ‪E J‬رت را "<‪ -‬آ‪.#‬‬
‫م ‪parenthesis.cpp :‬‬
‫‪ Q;.‬ورودي ‪:‬‬
‫ورودي *]ﻁ ‪/ J‬ﻁ ‪/‬اه د آ در @ن ـ‪ J‬رـ! ـ آراآ!هـي ’)‘ ’]‘ ’}’ ‘(’ ‘[’ ‘{‘ و(ـد دارد‪.‬‬
‫
‪ #‬آراآ!هي ورودي ‪ space‬ار‪P .R‬ل ر!ي ورودي از ‪ 100000‬آـراآ! ‪O‬ـوز <اهـ آـد‪) .‬در‬
‫‪ 30‬درﺹ ﺱ'ه ‪E‬رت ورودي *]ﻁ ’)‘ و ‘(‘ ا'(‬
‫‪/ Q;.‬و( ‪:‬‬
‫
ي ﺱ' در ﺹرت !ازن دن ر!ي ورودي ‪E‬رت ”‪ ) “YES‬وف ‪:‬رگ( و در ‪#H‬‬
‫ا ﺹرت ”‪ ) “NO‬وف ‪:‬رگ( را در ‪/‬و( ﺱ‪.‬‬
‫ورودي ‬
‫‪/‬و( ‬
‫‪YES‬‬
‫‪NO‬‬
‫}{}}{)][}{({‬
‫{{}{{)()(‬
‫)راه‪ :‬از ‪ (stack) !"7‬ا!‪C‬د آ‪(.#‬‬
‫ﺱ‪Td‬ي دوم – ا‪E‬اد ‪:
T#/‬رگ‬
‫ه‪A‬ر آ دا‪ #‬هي ااع !‪E ##X‬دي در ز
ن ‪
C++‬زي "<‪ N‬از ا‪E‬اد را اـ در‬
‫‪/‬د ‪ 2‬دار‪
.‬اي ‪D‬ل !‪##X‬هي از ع ‪]* int‬ـﻁ ‪.‬درـ ا‪E‬ـاد ﺹـ‪ M#8‬در ‪8‬ـودي ]‪ [-231, 231-1‬را‬
‫‪?2‬اري آ‪ .‬ا ‪
WD‬اي *! ﺹ‪+‬ب دو ‪E‬د ‪ 50‬ر‪!# .‬ـا‪ R#‬از ‪E‬ـ ‪+‬ـب در ‪C++‬‬
‫ا!‪C‬د آ‪ .R#‬از ‪/‬اه‪
R#‬اي ﺱ آ دو ‪E‬د از ورودي ‪#2‬د و ﺹ‪+‬ب @?ـ را‬
‫‪ 8‬آ‪.‬‬
‫م ‪bignumber.cpp :‬‬
‫‪ Q;.‬ورودي ‪:‬‬
‫ورودي دو ‪/‬ﻁ دارد آ در ه ‪/‬ﻁ ‪E J‬د ‪ 9:0‬آ ‪ ‚;P‬از ‪O 50000‬وذ آ داد د‪.‬‬
‫‪/ Q;.‬و( ‪:‬‬
‫‪/‬و( *]ﻁ ‪/ J‬ﻁ دارد آ در @ن ﺹ‪+‬ب دو ‪E‬د ورودي ! د‪.‬‬
‫‪3‬‬
‫ درس زي‬
‫ورودي ‬
‫‪/‬و( ‬
‫‪123456789123456789‬‬
‫‪15241578765432099750190521‬‬
‫‪123456789‬‬
‫)راه‪@ J :‬راي آراآ!ي ‪ #2‬و ار‪.‬م ه ‪E‬د را در ‪/‬هي @ن ‪2‬داري آ‪ YL .#‬دو ‪E‬د‬
‫را رو آ در د
ﺱ!ن د ‪!*0‬ا)!!!( در ه‪+ R‬ب آ‪(.#‬‬
‫ﺱ‪Td‬ي م – وارو‪2‬‬
‫*ض آ‪ a1 ,a2,…,an #‬د;اي از ا‪E‬اد ‪ .‬زوج )‪ (ai,aj‬را ‪ J‬وارو‪ R# 2‬ه‪ i < j 0‬و ‪. ai > aj‬‬
‫از ‪/‬اه‪1 R#‬اد وارو‪2‬ه را در ‪ J‬د; از ا‪E‬اد ' @ور‪.‬‬
‫م ‪inversion.cpp :‬‬
‫‪ Q;.‬ورودي ‪:‬‬
‫در ‪/‬ﻁ اول ‪E‬د ﺹ‪1) N M#8‬اد ا‪E‬اد د; @( آ ‪ 0 < N <= 50000‬داد ـد‪ .‬در ‪/‬ـﻁ ‪1‬ـ ‪N‬‬
‫‪E‬د ﺹ‪ M#8‬آ در زي ]‪ [-231, 231-1‬هﺱ! و ‪ space‬از ه‪( R‬ا ا داد د‪.‬‬
‫‪/ Q;.‬و( ‪:‬‬
‫‪/‬و( *]ﻁ ‪E J‬د ا' آ ‪1‬اد وارو‪2‬هي د;ي ورودي را ‪#‬ن آ‪.‬‬
‫ورودي ‬
‫‪/‬و( ‬
‫‪6‬‬
‫‪9‬‬
‫‪1492183‬‬
‫)راه‪ :‬ا;‪2‬ر!‪R‬هي ‪Q‬زي ‪ MergeSort‬و ‪ InsertionSort‬را د‪
'.‬ر آ‪(.#‬‬
‫ﺱ‪Td‬ي =?رم – ‪#‬روب‬
‫ ل ”‪
“Minesweeper‬زي آدا؟ هف ا زي ‪#7‬ا آدن ‪9‬ن هي ‪#‬ه در ‪ J‬ﺹ‪8C‬ي‬
‫‪ M*N‬ا'‪
.‬اي آ‪ ، J‬ا زي در ه ‡ ‪E‬دي را ‚ ـدهـ آـ ‪1‬ـاد ‪/‬ـهـي‬
‫‪ #‬در ‪O‬ورت @ن ‡ ا'‪
.‬اي ‪D‬ل ﺹ‪8C‬ي ‪ 4*4‬ز را آ ‪ # 2‬در @ن و(د دارد در ˆ ‪.#2‬‬
‫)‪/‬ي ‪ -<" * 'WE #‬ا'(‪:‬‬
‫‪* . . .‬‬
‫‪. . . .‬‬
‫‪. * . .‬‬
‫‪. . . .‬‬
‫ل ا‪ 0‬ا‪E‬اد راه را در (ول *ار ده‪/ R#‬اه‪ R#‬دا'‪:‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫
ا ه ‡ اآ‪/ 8 D‬ي ‪O‬ور دارد‪.‬‬
‫‪4‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪* 1‬‬
‫‪2 2‬‬
‫* ‪1‬‬
‫‪1 1‬‬
‫ درس زي‬
‫م ‪minesweeper.cpp :‬‬
‫‪ Q;.‬ورودي ‪:‬‬
‫در ‪/‬ـﻁ اول دو ‪E‬ـد ‪ N‬و ‪ ( 0 < N,M <= 100 ) M‬داد ــد آـ ـ ‪#‬ـ‪1 Q‬ـف ‪1‬ـاد ـ‪A‬ه و‬
‫!نه'‪/ N .‬ﻁ ‪1‬ي ه آام ـ د‪]#.‬ـ ‪ M‬آـراآ! اـ' ـ ـ ‪#‬ـ‪ Q‬ﺹـ‪8C‬ي ـزي را‬
‫"<‪ -‬آ‪ .‬هـ ـ‡ ـون ـ‪
#‬ـ آـراآ! ’‪A]) ‘.‬ـ( و هـ ـ‡ ـ‪#‬دار ـ آـراآ! ’*‘ "ـ<‪-‬‬
‫د‪ .‬د‪ '.‬آ‪ #‬آ ‪ #‬آراآ!هي ‪ space A J‬و(د ارد و آراآ!ه ‪ '"7‬ه‪@ R‬ا‪.‬‬
‫‪/ Q;.‬و( ‪:‬‬
‫‪/‬و( ‪/ N‬ﻁ ا' آ هـن (ـول ورودي را ـ‚ ـدهـ ـ اـ ‪C‬ـوت آـ ـ (ـي‬
‫‪/‬هي "<‪1 ‘.’ -‬اد ‪/‬هي ‪#‬دار ‪O‬ور ! ا')آ ‪ J‬ر‪.‬ـ‪
R‬ـ‪ 0 #‬ـ ‪8‬‬
‫‪/‬اه د(‪.‬‬
‫ورودي ‬
‫‪/‬و( ‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪* 1‬‬
‫‪3 2‬‬
‫‪* 1‬‬
‫*‬
‫‪3‬‬
‫‪1‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫‪35‬‬
‫‪* * .‬‬
‫‪. . .‬‬
‫‪. * .‬‬
‫)راه‪ :‬ا ﺱ‪ T#/ Td‬د ا'‪(.‬‬
‫ﺱ‪Td‬ي ‪ ?!"2( – RO7‬ﺹŠ!‬
‫ه‪A‬ر آ دا‪ '"2( n! #‬از ا‪E‬اد ‪ n 1‬و(ـد دارد‪ .‬اـ !‪"2( n‬ـ' را ــان ـ ‪#‬ـ‪Q‬‬
‫ا;‪)C‬د‪"9‬ي( ‪#‬ن آد‪
WD .‬اي ا‪E‬اد ‪ 3 1‬ان ‪ 9 '"2( 6‬را ‪ Q#‬ز '‪:‬‬
‫‪123‬‬
‫‪132‬‬
‫‪213‬‬
‫‪231‬‬
‫‪312‬‬
‫‪321‬‬
‫و‹‪C#‬ي ! اي ا' آ اي ـ‪"2( J‬ـ' داد ـ‪"2( ،‬ـ' ‪1‬ـي در ;‪#‬ﺱـ'‬
‫ا;‪ C‬را ‪#7‬ا آ‪.‬‬
‫م ‪permutation.cpp :‬‬
‫‪ Q;.‬ورودي ‪:‬‬
‫‪5‬‬
‫ درس زي‬
‫در ‪/‬ــﻁ اول ‪E‬ــد ‪11P‬ــ ‪P) N‬ــل (‪"2‬ــ'( آــ ‪ 1 < N <= 100000‬داد ــــد‪ .‬در ‪/‬ــﻁ ‪1‬ــي‬
‫(‪ !"2‬از ا‪E‬اد ‪ N 1‬داد د آ ‪ #‬ه دو ‪E‬د ‪. space J‬ار دارد‪ .‬در ا ‪/‬ﻁ ‪ #H‬از ا‪E‬اد‬
‫در زي ]‪ @ [1, N‬و ه آام از ا‪E‬اد ‪ N 1‬د‪
J ]#.‬ر ‹ه د‪.‬‬
‫‪/ Q;.‬و( ‪:‬‬
‫‪/‬و( د‪/ J ]#.‬ﻁ دارد آ (‪1
'"2‬ي ورودي را "ن ده)‪E N‬د آ *ﺹ‪ T‬از ه‪( R‬ـا‬
‫ا(‪* .‬ض آ‪ #‬آ (‪1
'"2‬ي ورودي و(د دارد)‪"2( 1‬ـ' ورودي @‪/‬ـ (‪"2‬ـ' از‬
‫;‪#‬ﺱ' ا;‪# C‬ﺱ'(‪.‬‬
‫‪/‬و( ‬
‫ورودي ‬
‫‪5‬‬
‫‪14532‬‬
‫‪14523‬‬
‫)راه‪ '"2( 24 :‬ا‪E‬ا ‪ 4 1‬را روي آ‪ 5H‬ـ ‪#‬ـ‪ Q‬ا;‪C‬ـ ﺱـ‪ #‬و ا;‪2‬ـي ر‪E‬ـ' ـ‬
‫
اي ' @ن (‪1
'"2‬ي را ‪ .#
#‬د;ي ‪:‬و; @‪ /‬ه (‪ '"2‬را ز ˆ ‪(.#2‬‬
‫‪6‬‬