|
Шаблон программы
(Время: 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.
| |