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

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


 

Шаблон программы

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

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

Алгоритмическая реализация вышеописанной идеи:

  sum=0
  while(!eof()){
    read(c)
    if(c in ['a'..'z']) sum += DS(c-'a'+1)
    if(c in ['A'..'Z']) sum += DS(c-'A'+1)+10
    if(c=' ') sum+=4
    if(c in ['0'..'9']) sum += 13-(c-'0')
    if(c='.') sum += 5
    if(c=';') sum += 7
    if(c=',') sum += 2
    if(c in ['=', '+', '-', '''', '"']) sum += 3
    if(c in ['(', ')']) sum++
    if(c in ['{','}','[',']','<','>']) sum += 8
  }
  write(sum)

Здесь DS(x) – функция, возвращающая значение суммы цифр целого числа x.

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


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