Приклади олімпіадних задач з інформатики

Про матеріал
Задача Stamps. Двоє друзів колекціонують наліпки. Олег полюбляє наліпки з зображенням птахів, а Роман полюбляє з зображенням тварин. У Олега є непотрібні йому наліпки з тваринами, а у Романа є непотрібні йому наліпки з птахами. Вони обмінюють всі свої непотрібні наліпки на всі непотрібні наліпки товариша. Технічні умови. Програма Stamps читає з пристрою стандартного введення 2 числа N, K (1 <= N, K <= 109) кількість непотрібних наліпок відповідно Олега і Романа. Програма виводить на пристрій стандартного виведення одне число - кількість наліпок, які отримав Олег під час обміну. Задача Point1. Обрахуйте, яку найбільшу кількість точок з цілочисельними координатами на листку в клітинку можливо накрити квадратом зі стороною N клітинок, при умові, що сторони квадрата паралельні сторонам клітинок. Технічні умови. Програма Point1 читає з пристрою стандартного введення ціле число N (1 <= N <= 105). Програма виводить на пристрій стандартного виведення відповідь на задачу. Задача Calendar. Зустріч друзів відбувається кожного тижня в один і той самий день. Допоможіть друзям скласти календар зустрічей до кінця року - визначте дати усіх зустрічей та їх кількість, починаючи з першої і до кінця року. Технічні умови. Програма Calendar читає із стандартного введення два числа - номер місяця і номер дня місяця, коли відбувається перша зустріч. Номер місяця може бути одним з чотирьох можливих чисел - 9, 10, 11, 12. Номер дня місяця - число від 1 до 30 для місяців з номерами 9 і 11 або від 1 до 31 для місяців з номерами 10 і 12. Прграма виводить на пристрій стандартного виведення дати усіх зустрічей до кінця року в хронологічному порядку, в один рядок першим місяць, потім день місяця, через пропуск. Заняття проходять кожного тижня, в той же день тижня, що і перша зустріч. Остання зустріч може проходити у будь-який день грудня, в тому числі і 31 числа. Задача Spacerobot. Космічний Робот висадився на чужу планету. Спочатку Робот виконує одну операцію — бере камінець и кладе його в контейнер для червоних камінців. Якщо все правильно — продовжує набирати камінці, якщо ж взятий камінь виявився синім - Робот виконує іншу операцію — перекладає камінець в контейнер для синіх камінців, або відкидає далеко в сторону, якщо контейнер заповнений (він вже поклав 40 синіх камінців туди раніше). Як тільки «червоний» контейнер заповнено — продовжуємо всі ті ж дії для синіх камінців та синього контейнера. Усього поряд з Роботом лежить А червоних та В синіх камінців. Технічні умови. Програма Spacerobot читає з пристрою стандартного введення в одному рядку два числа А, В (40 <= А, В <= 100). Програма виводить на пристрій стандартного виведення максимальну кількість операцій, які вимушений буде виконати робот, аби заповнити «синій» та «червоний» контейнери, кожен із яких розрахований на 40 камінців.
Перегляд файлу

Задача Stamps. Двоє друзів колекціонують наліпки. Олег полюбляє наліпки з зображенням птахів, а Роман полюбляє з зображенням тварин.

У Олега є непотрібні йому наліпки з тваринами, а у Романа є непотрібні йому наліпки з птахами. Вони обмінюють всі свої непотрібні

наліпки на всі непотрібні наліпки товариша.

 

Технічні умови. Програма Stamps читає з пристрою стандартного введення 2 числа N, K (1 <= N, K <= 109) кількість непотрібних наліпок

відповідно Олега і Романа. Програма виводить на пристрій стандартного виведення одне число - кількість наліпок, які отримав Олег під час обміну.

 

var a,b:real;

begin

readln (a,b);

writeln (b);

end.

 

Задача Point1. Обрахуйте, яку найбільшу кількість точок з цілочисельними координатами на листку в клітинку можливо накрити квадратом зі стороною N клітинок,

при умові, що сторони квадрата паралельні сторонам клітинок.

 

Технічні умови. Програма Point1 читає з пристрою стандартного введення ціле число N (1 <= N <= 105). Програма виводить на пристрій стандартного виведення

відповідь на задачу.

 

var a:real;

begin

readln (a);

writeln (sqr(a+1));

end.

 

Задача Calendar. Зустріч друзів відбувається кожного тижня в один і той самий день. Допоможіть друзям скласти календар зустрічей до кінця року - визначте дати

усіх зустрічей та їх кількість, починаючи з першої і до кінця року.

 

Технічні умови. Програма Calendar читає із стандартного введення два числа - номер місяця і номер дня місяця, коли відбувається перша зустріч. Номер місяця може

бути одним з чотирьох можливих чисел - 9, 10, 11, 12. Номер дня місяця - число від 1 до 30 для місяців з номерами 9 і 11 або від 1 до 31 для місяців з номерами

10 і 12. Прграма виводить на пристрій стандартного виведення дати усіх зустрічей до кінця року в хронологічному порядку, в один рядок першим місяць, потім день

місяця, через пропуск. Заняття проходять кожного тижня, в той же день тижня, що і перша зустріч. Остання зустріч може проходити у будь-який день грудня, в тому

числі і 31 числа.

 

var m,n:byte;

begin

  readln(m,n);

  write (m,' ',n,' ');

  while m<>1 do

  begin

      n:=n+7;

      if (n>31)and(m=10) then

                         begin

                            m:=11;

                            n:=n-31;

                         end

                         else

                         begin

                              if (n>30)and(m=11) then

                                                 begin

                                                    m:=12;

                                                    n:=n-30;

                                                  end

                                                  else

                                                  begin

                                                    if (n>30)and(m=9) then

                                                                      begin

                                                                        m:=10;

                                                                        n:=n-30;

                                                                       end

                                                     else  if (n>31)and(m=12) then  m:=1;

                                                 end

                         end;                        

     if m<>1 then write(m,' ',n,' ');

  end;

end.

 

Задача Spacerobot. Космічний Робот висадився на чужу планету. Спочатку Робот виконує одну операцію — бере камінець и кладе його в контейнер для червоних камінців.

Якщо все правильно — продовжує набирати камінці, якщо ж взятий камінь виявився синім - Робот виконує іншу операцію — перекладає камінець в контейнер для синіх

камінців, або відкидає далеко в сторону, якщо контейнер заповнений (він вже поклав 40 синіх камінців туди раніше). Як тільки «червоний» контейнер заповнено —

продовжуємо всі ті ж дії для синіх камінців та синього контейнера. Усього поряд з Роботом лежить А червоних та В синіх камінців.

 

Технічні умови. Програма Spacerobot читає з пристрою стандартного введення в одному рядку два числа А, В (40 <= А, В <= 100). Програма виводить на пристрій

стандартного виведення максимальну кількість операцій, які вимушений буде виконати робот, аби заповнити «синій» та «червоний» контейнери, кожен із яких

розрахований на 40 камінців.

 

var a,b:byte;

 

begin

   readln(a,b);

   if b>=a then writeln(40+2*b)else writeln(40+2*(a-40)+39*2+1)

end.

 

 

docx
Пов’язані теми
Інформатика, Інші матеріали
Додано
4 листопада 2021
Переглядів
434
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку