Информатика бойынша олимпиада есептерінің шығарылуы, II этап, 2009-2010.
Бұл мақала 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 |
3
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.
Ұқсас тақырыптар:
- Информатика. Аудандық олимпиада есептерінің шығарылуы, II этап, 2008-2009
- Қалалық олимпиада тапсырмалары 2012.
- 2008-2009 Олимпиада есептері шешулерімен.
- I-тур. Информатикадан 2011-2012 жылғы аудандық олимпиадасы, 2-этап, 5 сағат (2012 облыстық І-тур)..
- Pascal-да программалар: 2-лік->10 сан, 10-дық->2 сан, 4 амал, Қазақша жыл.
- Паскаль. Кіріс, шығыс файлдары
- Паскалдан жиі қолданыстағы тақырыптық есептер (40 есеп+шешуі).
- ІІ-тур. Информатикадан 2011-2012 жылғы аудандық олимпиадасы, 2-этап.
- Информатика 2010-2011. Олимпиада есептері шығарылуымен.
- И-9. Сызықты құрылымды алгоритмдер мен программаларды құру
І этап есептері және шығарылуы бар ма?
Бар. Оның тақырыбында І -эатп дер тур.