ОЛИМПИАДА ПО ИНФОРМАТИКЕ

Задачи школьной олимпиады по информатике 2009 г.

Задачи районной олимпиады по информатике 2008 г.

Задача № 1 Который час? (25 баллов)

Вася и Петя учатся в школе со следующим расписанием занятий: уроки начинаются в 8:30, каждый урок длиться 45 минут, а между уроками есть пятнадцатиминутная перемена.

Сейчас идет К-ый по счету урок и Вася, уставший после напряженного учебного дня, поскорее хочет домой и спрашивает у Пети, сколько времени. Петя отвечает «Т минут », если с начала урока прошло Т минут и « минус Т минут », если до конца урока осталось «Т минут ».

Требуется написать программу, которая по известному номеру урока, а также ответу Пети точно определяет, сколько сейчас времени.

Задача № 2 Лампочки (25 баллов)

N лампочек расположены друг за другом в один ряд. Вначале все лампочки выключены. Под крайней левой лампочкой стоит фишка. За один ход фишка перемещается влево или вправо под соседнюю лампочку. При этом лампочка, под которой остановилась фишка, меняет свое состояние (включается, если была выключена и выключается, если была включена).

Напишите программу, определяющую минимальное число ходов, которые требуется сделать фишкой, чтобы все лампочки стали зажжены.

Задача № 3 Спора (25 баллов)

На поверхности воды в прямоугольном аквауриме размера N*N живет новый вид органической жизни - спора. Изначально форма споры представляет собой круг единичного радиуса, а ее рот всегда находится в центре этого круга. Спора питается планктоном, плавающим по поверхности воды. Планктон находится в точке с постоянными координатами. Размером планктона можно пренебречь.

Спора может свободно плавать по поверхности. Если в процессе плавания рот споры совпадает с местом, где находится планктон, то она поедает его. После поедания каждого планктона размер споры увеличивается в радиусе на один. Спора не может выходить за границы аквариума какой-либо частью, а также не может съесть планктон, если в результате ее увеличения она выйдет за пределы аквариума.

В целях научного эксперимента необходимо вырастить спору максимального размера. Требуется написать программу, которая определяет максимальный размер споры, которую можно получить в данном аквариуме.

Компьютерные модели:
program z1;
{Который час?}
var k,t,v:longint;
const n=510;
begin
read(k,t);
if t<0 then
  begin
    v:=n+(k*60)-15+t;
  end
  else
    begin
      v:=n+((k-1)*60)+t;
    end;
writeln(v div 60,' ',v mod 60);
readln;
readln;
end.

program z2;
{Лампочки}
var n,k:longint;
begin
read(n);

n:=n-2;
k:=n*3;
k:=k+2;
writeln(k);

readln;
readln;
end.

program z3;
{Спора}
var n,m,k,min,i,r:longint;
    a:array [1..1000,1..3] of longint;
    f:text;
procedure sort(n:longint);
var i,j,w:longint;
begin
  for i:=1 to n do
    for j:=1 to n do
      if a[i,3]<=a[j,3] then
        begin
          w:=a[i,3];
          a[i,3]:=a[j,3];
          a[j,3]:=w;
        end;
end;
begin
assign(f,'input.txt');
reset(f);
read(f,n,m,k);
r:=1;
for i:=1 to k do
begin

  read(f,a[i,1],a[i,2]);
  min:=10000;

  if a[i,2] < min then min:=a[i,2];
  if a[i,1] < min then min:=a[i,1];
  if n-a[i,1] < min then min:=n-a[i,1];
  if m-a[i,2] < min then min:=m-a[i,2];
  a[i,3]:=min;

end;
close(f);
sort(k);
for i:=1 to k do
  begin
    if r+1<=a[i,3] then
     inc(r);
  end;
writeln(r);
readln;
readln;
end.

Hosted by uCoz