Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 

Боулинг

(Время: 1 сек. Память: 16 Мб Сложность: 29%)

Алгоритм решения данной задачи фактически описан в ее условии. Здесь требуется лишь аккуратная реализация процесса подсчета очков. При этом удобно использовать 2 параметра: i - номер тура, n - номер броска. Пробегая в цикле по турам возможно вычислять число бросков в туре и осуществлять подсчет очков. Алгоритмическая реализация данной задачи:

  //чтение массива бросков 
  read(n)
  for i=1..n read(a[i])

  n=s=0
  //цикл по номеру тура
  for i=1..10{
    n=n+1
    c=a[n]
    //если strike, то добавляем очки за следующие 2 броска
    if(c=10) s=s+10+a[n+1]+a[n+2] 
    else{
      n=n+1
      d=a[n]
      //если spare, то добавляем очки за следующий бросок
      if c+d=10 then s:=s+10+a[n+1] else s:=s+c+d
    }
  }
  write(s)

[Обсуждение] [Все попытки] [Задача]


Красноярский краевой Дворец пионеров, (c)2006 - 2024, ИНН 246305493507, E-mail: admin@acmp.ru