Ïðåçèäåíòñêàÿ ïðîãðàììà. 20112012 ó÷åáíûé ãîä. Òåñòèðîâàíèå 3. 10 êëàññ. Ïàìÿòêà ó÷àñòíèêà òåñòèðîâàíèÿ Ñëåäóéòå ñëåäóþùèì ïðàâèëàì âî âðåìÿ ó÷àñòèÿ â òåñòèðîâàíèè: 1. Äëÿ çàäà÷ A è B ðåøåíèåì ÿâëÿåòñÿ òåêñòîâûé ôàéë, à äëÿ çàäà÷ C, D è E ðåøåíèåì ÿâëÿåòñÿ ïðîãðàììà, íàïèñàííàÿ íà îäíîì èç ðàçðåøåííûõ ÿçûêîâ ïðîãðàììèðîâàíèÿ. Ðàçðåøåííûìè ñ÷èòàþòñÿ ÿçûêè, äîñòóïíûå â ìåíþ âûáîðà ÿçûêà ïðè ïîïûòêå îòïðàâèòü çàäà÷ó. 2. Ïðîãðàììà äîëæíà ÷èòàòü âõîäíûå äàííûå òîëüêî èç ôàéëà input.txt è âûâîäèòü ðåçóëüòàò â âûõîäíîé ôàéë output.txt. Ïðîãðàììà äîëæíà ñ÷èòàòü, ÷òî ýòè ôàéëû íàõîäÿòñÿ â òåêóùåì êàòàëîãå. Ðàáîòàòü ñ êàêèìè-ëèáî äðóãèìè ðåñóðñàìè êîìïüþòåðà çàïðåùåíî. 3. Ðåçóëüòàòû ðàáîòû ïðîãðàììû ïðîâåðÿþòñÿ àâòîìàòè÷åñêè, ïîýòîìó ïðîãðàììà äîëæíà òî÷íî ñîáëþäàòü ôîðìàò âûâîäà, óêàçàííûé â óñëîâèè. Íå äîïóñêàåòñÿ âûâîä äîïîëíèòåëüíûõ ñîîáùåíèé, èëè îæèäàíèå ââîäà-âûâîäû ñ ýêðàíà. Âàøà ïðîãðàììà äîëæíà çàêàí÷èâàòü ñâîþ ðàáîòó ïîñëå âûâîäà âûõîäíîãî ôàéëà, à íå ¾çàâèñàòü¿ â îæèäàíèè ââîäà ñ êëàâèàòóðû. 4. Ãàðàíòèðóåòñÿ, ÷òî âõîäíûå ôàéëû áóäóò ñîîòâåòñòâîâàòü ôîðìàòó, óêàçàííîìó â óñëîâèè. Âñå îãðàíè÷åíèÿ, çàÿâëåííûå â óñëîâèè çàäà÷è, áóäóò âûïîëíÿòüñÿ â òåñòàõ æþðè. Ïðîâåðÿòü èõ â ïðîãðàììå íå èìååò ñìûñëà. Îãðàíè÷åíèÿ ïî âðåìåíè óêàçàíû äëÿ êîìïüþòåðà ñ òàêòîâîé ÷àñòîòîé 2.4 ÃÃö. 5. Ìàêñèìàëüíûé áàëë çà êàæäóþ çàäà÷ó óêàçàí â óñëîâèè. ×àñòè÷íûå ðåøåíèÿ áóäóò îöåíèâàòüñÿ èñõîäÿ èç êîëè÷åñòâà ïðîéäåííûõ òåñòîâ. 6. Ñòàðàéòåñü èñïîëüçîâàòü êàê ìèíèìóì 32-õ áèòíûå òèïû äàííûõ, åñëè ýòî ïîçâîëÿåò îãðàíè÷åíèå ïî ïàìÿòè (íàïðèìåð, longint â Ïàñêàëå). Ïðèìåðû ðåøåíèÿ çàäà÷è A+B Íèæå ïðèâåäåíû ðåøåíèÿ çàäà÷è, â êîòîðîé òðåáóåòñÿ ñ÷èòàòü äâà ÷èñëà è âûâåñòè èõ ñóììó. • Pascal (Delphi): var a , b: longint ; begin a s s i g n ( input , ' i n p u t . t x t ' ) ; reset ( i n p u t ) ; readln ( a , b ) ; c l o s e ( input ) ; a s s i g n ( output , ' output . t x t ' ) ; ( output ) ; (a + b); c l o s e ( output ) ; . rewrite writeln end • C/C++: #include <s t d i o . h> int main ( ) { freopen ( " input . txt " , " rt " , stdin ) ; f r e o p e n ( " output . t x t " , "wt" , s t d o u t ) ; a, b; s c a n f ( "%d%d" , &a , &b ) ; p r i n t f ( "%d\n" , a + b ) ; fclose ( stdin ); f c l o s e ( stdout ) ; 0; int } return • Java: import j a v a . u t i l . Scanner ; import j a v a . i o . P r i n t W r i t e r ; import j a v a . i o . F i l e ; public class S o l u t i o n { public static void main ( S t r i n g [ ] a r g s ) throws E x c e p t i o n { S o l u t i o n s o l u t i o n = new S o l u t i o n ( ) ; s o l u t i o n . run ( ) ; Ñòðàíèöà 1 èç 4 Ïðåçèäåíòñêàÿ ïðîãðàììà. 20112012 ó÷åáíûé ãîä. Òåñòèðîâàíèå 3. 10 êëàññ. } private void run ( ) throws E x c e p t i o n { Scanner s c a n = new Scanner ( new F i l e ( " i n p u t . t x t " ) ) ; P r i n t W r i t e r w r i t e r = new P r i n t W r i t e r ( new F i l e ( " output . t x t " ) ) ; int n = s c a n . n e x t I n t ( ) ; int m = s c a n . n e x t I n t ( ) ; } } w r i t e r . p r i n t (m + n ) ; writer . close ( ) ; Çàäà÷à A. Óëåé Èìÿ âõîäíîãî ôàéëà: input.txt Èìÿ âûõîäíîãî ôàéëà: output.txt Îãðàíè÷åíèå ïî âðåìåíè: 2 ñåêóíäû Îãðàíè÷åíèå ïî ïàìÿòè: 256 ìåãàáàéò Êåâèí ðàáîòàåò ñòðîèòåëåì. Íî òàê êàê Êåâèí ï÷åëà, îí ñòðîèò òîëüêî óëüÿ. Êàê èçâåñòíî, óëåé ñîñòîèò èç îäèíàêîâûõ ñîò, êîòîðûå ÿâëÿþòñÿ ïðàâèëüíûìè øåñòèóãîëüíèêàìè. Ñðåäè ï÷åë ñ÷èòàåòñÿ, ÷òî óëåé ðàçìåðà îäèí ýòî óëåé, ñîñòîÿùèé èç åäèíñòâåííîé ñîòû, óëåé ðàçìåðà äâà ñîñòîèò èç óëüÿ ðàçìåðà îäèí, îêðóæåííîãî îäíèì êîëüöîì ñîò, . . . óëåé ðàçìåðà k ýòî óëåé ðàçìåðà k − 1, îêðóæåííûé êîëüöîì ñîò. Íåäàâíî Êåâèíà ïîïðîñèëè ïîñòðîèòü óëåé ðàçìåðà n. Äëÿ ïëàíèðîâàíèÿ ñòðîèòåëüíûõ ðàáîò Êåâèíó íåîáõîäèìî çíàòü òî÷íîå ÷èñëî ñîò â óëüå. Ïîìîãèòå åìó. Íàïèøèòå ïðîãðàììó, êîòîðàÿ ïî ðàçìåðó óëüÿ n áóäåò óçíàâàòü ÷èñëî ñîò â òàêîì óëüå. Ôîðìàò âõîäíîãî ôàéëà Âõîäíîé ôàéë ñîäåðæèò åäèíñòâåííîå öåëîå ÷èñëî n (1 ≤ n ≤ 109) ðàçìåð óëüÿ. Ôîðìàò âûõîäíîãî ôàéëà  âûõîäíîé ôàéë âûâåäèòå åäèíñòâåííîå ÷èñëî ÷èñëî ñîò â óëüå. Ïðèìåðû 1 3 input.txt 1 19 Ñòðàíèöà 2 èç 4 output.txt Ïðåçèäåíòñêàÿ ïðîãðàììà. 20112012 ó÷åáíûé ãîä. Òåñòèðîâàíèå 3. 10 êëàññ. Çàäà÷à B. Òåêñòîâûé ðåäàêòîð Èìÿ âõîäíîãî ôàéëà: input.txt Èìÿ âûõîäíîãî ôàéëà: output.txt Îãðàíè÷åíèå ïî âðåìåíè: 2 ñåêóíäû Îãðàíè÷åíèå ïî ïàìÿòè: 256 ìåãàáàéò Àíäðåé çàíèìàåòñÿ ðàçðàáîòêîé íîâîãî òåêñòîâîãî ðåäàêòîðà. Ïåðâàÿ ðàáîòàþùàÿ âåðñèÿ ýòîãî ðåäàêòîðà ïîääåðæèâàåò òîëüêî îäíîñòðî÷íûå äîêóìåíòû. Ýòîò íåäîñòàòîê áóäåò óñòðàíåí â ñëåäóþùåé âåðñèè. Îñíîâíîé âîçìîæíîñòüþ ýòîãî ðåäàêòîðà ÿâëÿåòñÿ âîçìîæíîñòü çàïèñè äåéñòâèé ïîëüçîâàòåëÿ. Ïîëüçîâàòåëü ìîæåò ñîâåðøèòü ñëåäóþùèå äåéñòâèÿ: • ââåñòè î÷åðåäíóþ áóêâó â ýòîì ñëó÷àå â ñïèñîê êîìàíä äîáàâëÿåòñÿ ââåäåííàÿ áóêâà; • ñòåðåòü ïîñëåäíèé íàáðàííûé ñèìâîë â ýòîì ñëó÷àå â ñïèñîê êîìàíä äîáàâëÿåòñÿ #; • ñòåðåòü âñþ ñòðîêó â ýòîì ñëó÷àå â ñïèñîê êîìàíä äîáàâëÿåòñÿ @. Åñëè ïåðåä ñòèðàíèåì ïîñëåäíåãî ââåäåííîãî ñèìâîëà èëè âñåé ñòðîêè ñòðîêà ïóñòà, òî íè÷åãî íå ïðîèñõîäèò. Îäíà èç îñíîâíûõ ïðîáëåì òåïåðü íàïèñàòü ïðîãðàììó, êîòîðàÿ áóäåò âîñïðîèçâîäèòü äåéñòâèÿ ïîëüçîâàòåëÿ ïî çàïèñàííîé ïîñëåäîâàòåëüíîñòè êîìàíä. Âàøà çàäà÷à íàïèñàòü òàêóþ ïðîãðàììó. Îíà äîëæíà ïî ñïèñêó êîìàíä íàõîäèòü ñòðîêó, êîòîðàÿ ïîëó÷àåòñÿ ïîñëå èõ âûïîëíåíèÿ. Ôîðìàò âõîäíîãî ôàéëà Âõîäíîé ôàéë ñîäåðæèò îäíó ñòðîêó, â êîòîðîé çàïèñàí ñïèñîê êîìàíä. Åãî äëèíà íå ïðåâîñõîäèò 255. Êàæäûé ñèìâîë ñòðîêè ÿâëÿåòñÿ ëèáî ñòðî÷íîé áóêâîé ëàòèíñêîãî àëôàâèòà, ëèáî ñèìâîëîì @, ëèáî ñèìâîëîì #. Ôîðìàò âûõîäíîãî ôàéëà  âûõîäíîé ôàéë âûâåäèòå ñòðîêó, ïîëó÷àþùóþñÿ â ðåçóëüòàòå âûïîëíåíèÿ âñåõ êîìàíä èç âõîäíîãî ôàéëà. Ïðèìåðû hellov#world@thisisasample thisisasample abc####hello hello input.txt output.txt input.txt output.txt Çàäà÷à C. Âû÷èñëèòåëüíàÿ áèîëîãèÿ Èìÿ âõîäíîãî ôàéëà: input.txt Èìÿ âûõîäíîãî ôàéëà: output.txt Îãðàíè÷åíèå ïî âðåìåíè: 2 ñåêóíäû Îãðàíè÷åíèå ïî ïàìÿòè: 256 ìåãàáàéò  ñîâðåìåííîé áèîëîãèè ó÷åíûì ÷àñòî ïðèõîäèòñÿ èìåòü äåëî ñ ïîñëåäîâàòåëüíîñòÿìè ÄÍÊ. Ýòè Ñòðàíèöà 3 èç 4 Ïðåçèäåíòñêàÿ ïðîãðàììà. 20112012 ó÷åáíûé ãîä. Òåñòèðîâàíèå 3. 10 êëàññ. ïîñëåäîâàòåëüíîñòè çà÷àñòóþ ÿâëÿþòñÿ î÷åíü äëèííûìè è èõ ðó÷íàÿ îáðàáîòêà òðåáóåò áîëüøîãî êîëè÷åñòâà âðåìåíè è ñèë. Ïîýòîìó âîçíèêàåò èäåÿ àâòîìàòèçèðîâàòü ýòîò ïðîöåññ. Äëÿ ýòîãî ìîæíî ïðèìåíÿòü êîìïüþòåðíûå ìåòîäû îáðàáîòêè äàííûõ, íàïðèìåð, âåñüìà ïîëåçíûìè îêàçûâàþòñÿ àëãîðèòìû íà ñòðîêàõ.  ýòîé çàäà÷å ïîñëåäîâàòåëüíîñòü ÄÍÊ áóäåò ïðåäñòàâëÿòüñÿ â âèäå ñòðîêè, âñå ñèìâîëû êîòîðîé âõîäÿò â ìíîæåñòâî {A, G, C, T }. Ïóñòü äàíû äâå ïîñëåäîâàòåëüíîñòè ÄÍÊ: s = s1s2 . . . sn è t = t1t2 . . . tm. Áóäåì ãîâîðèòü, ÷òî t ìîæåò ïîëó÷èòñÿ â ðåçóëüòàòå ýâîëþöèè èç s, åñëè s ÿâëÿåòñÿ ïîäïîñëåäîâàòåëüíîñòüþ t, òî åñòü ñóùåñòâóåò òàêàÿ ïîñëåäîâàòåëüíîñòü èíäåêñîâ 1 ≤ i1 < i2 < . . . < in ≤ m, ÷òî s1 = ti , s2 = ti , . . . , sn = ti . Íåîáõîäèìî âûÿñíèòü, ìîæåò ëè ïîñëåäîâàòåëüíîñòü t ïîëó÷èòñÿ â ðåçóëüòàòå ýâîëþöèè èç s. 1 2 n Ôîðìàò âõîäíîãî ôàéëà Ïåðâàÿ ñòðîêà âõîäíîãî ôàéëà ñîäåðæèò ïîñëåäîâàòåëüíîñòü s, âòîðàÿ ïîñëåäîâàòåëüíîñòü t. Ðàçìåð âõîäíîãî ôàéëà íå ïðåâîñõîäèò 256 êèëîáàéò. Ôîðìàò âûõîäíîãî ôàéëà  âûõîäíîé ôàéë âûâåäèòå ñëîâî YES, åñëè ïîñëåäîâàòåëüíîñòü t ìîãëà ïîëó÷èòñÿ â ðåçóëüòàòå ýâîëþöèè èç s, è ñëîâî NO èíà÷å. Ïðèìåðû GTA AGCTA AAAG GAAAAAT input.txt YES output.txt NO Çàäà÷à D. Äåëèòåëè Èìÿ âõîäíîãî ôàéëà: input.txt Èìÿ âûõîäíîãî ôàéëà: output.txt Îãðàíè÷åíèå ïî âðåìåíè: 2 ñåêóíäû Îãðàíè÷åíèå ïî ïàìÿòè: 256 ìåãàáàéò Çàäàíî íàòóðàëüíîå ÷èñëî x, âñå ïðîñòûå äåëèòåëè êîòîðîãî íå ïðåâîñõîäÿò 1000. Íàïèøèòå ïðîãðàììó, íàõîäÿùóþ ÷èñëî äåëèòåëåé ÷èñëà x. Ôîðìàò âõîäíîãî ôàéëà Ïåðâàÿ ñòðîêà âõîäíîãî ôàéëà ñîäåðæèò öåëîå ÷èñëî x (1 ≤ x ≤ 1018). Âñå ïðîñòûå äåëèòåëè ÷èñëà x íå ïðåâîñõîäÿò òûñÿ÷ó. Ôîðìàò âûõîäíîãî ôàéëà  âûõîäíîé ôàéë âûâåäèòå îòâåò íà çàäà÷ó. Ïðèìåðû 12 239 input.txt 6 2 Ñòðàíèöà 4 èç 4 output.txt