пʼятниця, 13 березня 2015 р.

Puh

(Джерело: http://www.olymp.vinnica.ua/index_ua.php?lng=ua&cid=115)

Задача. Ведмедик Вінні-Пух тікає від бджіл по алеї, яка складається із товстих дерев, яких N (1<=N<=300). Кожне дерево має дупло певного діаметра D (D>=0). Якщо діаметр дупла більший за діаметр черевця Вінні-Пуха, то ведмедик може заховатись в цьому дуплі. Діаметр черевця Вінні-Пуха – V (V>0). У якому  першому за рахунком дереві він може заховатись? Скільки на алеї росте дерев, де може заховатись Вінні-Пух?

Технічні умови. Програма Puh читає з клавіатури послідовність цілих чисел одним рядком через пропуск: N, V, D1, D2 , ..., DN. Програма виводить на екран шукані велечини в указаній в умові послідовності. Якщо заховатися неможливо, програма виводить  0.

Приклади.

Введення: 10 5 1 0 4 8 10 2 0 1 9 0
Виведення: 1 4 3

Введення: 2 6 3 4
Виведення: 0
Розв'язання.
Будемо зчитувати діаметр чергового дерева та перевірятимемо чи може в ньому заховатися Вінні-Пух.
Запишемо алгоритми мовами програмування.

Free Pascal:
Var N, V,
 D, I, K : Integer;
    Flag : Boolean;
Begin
 Read (N, V);
 K := 0;
 Flag := True;
 For I := 1 To N Do Begin
  Read (D);
  If V < D
   Then Begin
    If Flag
     Then Begin
      Write ('1 ', I, ' ');
      Flag := False;
     End;
    Inc (K);
   End;
 End;
 Write (K);
End.

C++:
#include <iostream>
using namespace std;
int main(){
 int n, v, d, k=0;
 cin >> n >> v;
 bool f=true;
 for (int i=1; i<=n; i++) {
  cin >> d;
  if (v < d) {
   if (f) {
    cout << "1 " << i << ' ';
    f=false;
   }
   k++;
  }
 }
 cout << k;
}

Немає коментарів:

Дописати коментар