10 Август 2011 – 18:58 | 44 пікір

Құрметті ИНФОРМАТИКТЕР!
Cайтымыз сіздердің арқаларыңызда, аз уақытта Қазақстандағы ең танымал сайттардың біріне айналып келеді. Кейбір қазақ тілді сайттар өз контенттерін біздің сайтқа қарап өзгертіп қолданушыларын да көбейтті. Біздің үлгімізбен біршама жаңа сайттар ашылды. Соған қарағанда Информатик …

Толығырақ »
Информатика

Бәрі информатикаға байланысты

Педагогика

Тәлім-тәрбиеге байланысты материалдар

Басқа пәндер

Ұстаздар шығармашылығы

Оқушылар шығармашылығы

Басты бет » Web _bet-Жанна, Паскаль туралы

Информатика бойынша олимпиада есептерінің шығарылуы, II этап, 2009-2010.

Опубликовал Мұқаметжан Жақаев в 19 Август 2011 – 17:232 пікір
Бұл мақала 4337 рет оқылды, 16 рет бүгін

«Өскемен қаласының ресурс орталығы» ММ, «Қашықтықтан білім беру және кәсіптік оқыту» тобының әдіскері Баймуханбетова Ж.С.

автордың басқа жұмысы: Паскаль бастамалары.

А есебі. Құмырсқалар

Енгізу файлының аты:          ants.in
Шығару файлының аты:         ants.out
Уақыт шектеу:                     2 секунд
Жадыға шектеу:                  64 мегабайт

0 уақыт сәтінде N құмырсқалар 1 см. секундына жылдамдықпен көлденең кесінді бойымен берілген бағыттар бойынша қозғала бастайды. Егер екі құмырсқа кездессе, олар теріс бұрылып, яғни қозғалу бағыттарын қарама-қарсыға өзгертіп, ал жылдамдығын бастапқыдай қалдырып әрі қарай қозғалады. Кесіндінің шетіне жеткен құмырсқа құлайды.

Қанша секундтан кейін соңғы құмырсқа құлайтынын анықтаңыз.

Мәліметтерді енгізу форматы

Кіру файлының бірінші жолында 2 сан жазылған: N – құмырсқалар саны (1<=N<=105 )  және  L- кесіндінің сантиметр өлшем бірлігіндегі ұзындығы (2<=L<=106 ).

Екінші жолда N сан жазылған. і-ші сан- кесіндінің сол жақ шетінен і-ші құмырсқаға дейінгі сантиметр өлшеміндегі ара қашықтық (ара қашықтық 1-ден L-1 аралығындағы бүтін сан).

Үшінші жолда  да N сан жазылған. і-ші сан 0-ге тең, егер і-ші құмырсқа солға қарай қозғалса және 1-ге тең, егер і-ші құмырсқа оңға қарай қозғалса. Жолдардағы сандар бос орынмен бөлінген.

Мәліметтерді шығару форматы

Шығару файлының жалғыз жолында бір бүтін сан – есептің жауабын шығарыңыз.

Мысал

ants.in ants.out
2 4 

1 2

1 0

3

 

Шешуі:

Екі құмырсқа кездескенде тек орындарымен ғана алмасады.

Мысалы, құмырсқа саны 2, ал кесінді ұзындығы 7 см. болсын. Біріншісі (сары, кесіндінің сол жақ шетінен 2 см. орналасқан)  оңға қарай, ал екіншісі (жасыл, кесіндінің сол жақ шетінен 5 см. орналасқан) солға қарай қозғалсын. 2 секундтан кейін олардың орналасатын жерін қарастырайық.

Бастапқы орналасулары:
1-сурет

Екі құмырсқа кездескенде бағыттарын қарама-қарсы өзгертпегенде 2 секундтан кейінгі орналасулары:
1 секундта- 2-сурет
2 секундта- 3-сурет

Ал енді екі құмырсқа кездескенде бағыттарын қарама-қарсы өзгерткенде 2 секундтан кейінгі орналасулары:
1 секундта- 4-сурет
2 секундта- 5-сурет

Бұдан байқайтынымыз сары мен жасылдың орындары ғана ауысты. Яғни, құмырсқалар қақтығысқанда бір-бірінің жолын  жалғастырып кетеді.

Ендеше солға қарай қозғалатын құмырсқалардың ішінен кесіндінің сол жақ  шетінен ең алыс орналасқан құмырсқаның ара қашықтығын (максимумын), ал оңға қарай қозғалатын құмырсқалардың ішінен кесіндінің сол жақ шетіне ең жақын орналасқан құмырсқаның ара қашықтығын (минимум) табамыз.

Кесіндінің ұзындығынан минимумды азайтып максимуммен салыстырып үлкенін шығарамыз.

program Esep_A;
var i,m1,m0,n,l:longint; b:0..1;
a:array[1..100000] of longint; {bul typ Free Pascal yshin oryndalady, al Turbo Pascal yshin
zharamaidy}
begin
assign(input,’ants.in’); reset(input);
assign(output,’ants.out’); rewrite(output);
readln(n,l);
m1:=l;m0:=0;
for i:=1 to n do read(a[i]);
for i:=1 to n do
begin read(b);
case b of
0: if m0<a[i] then m0:=a[i];
1: if m1>a[i] then m1:=a[i];
end;
end;
if m0>l-m1 then write(m0) else write(l-m1);
close(input);
close(output);
end.

B есебі. Велосипедші

Енгізу файлының аты:                           biker.in
Шығару файлының аты:                        biker.out
Уақыт шектеу:                                        2 секунд
Жадыға шектеу:                                      64 мегабайт

Велосипедші N минуттың әр минутында өз лездік жылдамдығын өлшейді. Өлшеу әр минуттың басында іске асады. Өлшеулердің нәтижелерін ескере отырып, бірінші өлшеуден соңғысына дейінгі орташа жылдамдықты табыңыз. Өлшеу сәттерінің арасында жылдамдық қатаң бір текті өзгереді.

Анықтама үшін: орташа жылдамдық – бұл қашықтық бөлінген осы қашықтықты өтуге кететін уақыт.

Мәліметтерді енгізу форматы

Енгізу файлының бірінші жолында бүтін сан N - өлшеулер саны (1<=N<=105). Екінші жолында N сан жазылған: і-ші сан – велосипедшінің і-ші минуттың басындағы лездік жылдамдығы (секундына метрде). Жылдамдықтар – 0 мен 100 аралығындағы бүтін сандар. Жолдағы сандар бос орынмен бөлінген.

Мәліметтерді шығару форматы

Шығару файлының жалғыз жолында бір сан, нүктеден кейінгі екінші цифрға дейін жуықталған – секундына метрде есепке жауапты шығар.

Мысал

biker.in biker.out

0  10  0

5.00

Шешуі: Бұл есепте орташа жылдамдықты табу формуласын қолдану жеткілікті.

Бірінші өлшеуден соңғысына дейінгі орташа жылдамдықты табу қажет болғандықтан  уақыт-  (n-1)t болады.

program Esep_B;
var n,i:1..100000;
v1,v2:0..100; s:real;
begin
assign(input,’biker.in’);
reset(input);
assign(output,’biker.out’);
rewrite(output);
readln(n);
read(v1);
s:=0;
for i:=1 to n-1 do
begin
read(v2);
s:=s+(v1+v2)*30;
v1:=v2;
end;
write((s/((n-1)*60)):0:2);
close(input);
close(output);
end.

Ұқсас тақырыптар:

2 пікір »

Оставьте комментарий

Добавьте комментарий ниже или обратную ссылку со своего сайта. Вы можете также подписаться на эти комментарии по RSS.

Всего хорошего. Не мусорите. Будьте в топе. Не спамьте.

Вы можете использовать коды HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

На сайте используются Gravatar. Чтобы его получить зарегистрируйтесь Gravatar.