Внутривузовские олимпиады/1-6 курсы/ТУСУР 2016
4. Прокачка
Виктор очень любит игру The Elder Scrolls 3: Morrowind. Говоря о том, чем именно она его покорила, он начал бы с восхваления проработанного сюжета и неповторимой атмосферы, в которую погружаешься с головой, а уж после этого принялся бы нахваливать RPG-составляющую игры и уникальную систему прокачки персонажа.
Виктор обещал составить пару задач для олимпиады по программированию, и он конечно же займётся этим, как только завершит с получением очередного уровня опыта.
В большинстве RPG прокачка персонажа (то есть повышение его уровня опыта, определяющего степень его могущества) — простейшее занятие, с которым разберётся и шестилетний ребёнок. Но только не в Morrowind!
У любого персонажа в Morrowind есть 27 навыков (их полный список вы можете видеть в примере). Каждый навык освоен игровым персонажем в той или иной степени, что выражается уровнем навыка. Уровень каждого навыка составляет по крайней мере 5, является целым числом и не превосходит ста.
Среди этих 27 навыков выделяются 5 главных навыков, 5 важных навыков и 17 второстепенных. Каждый раз, когда главный или важный навык персонажа возрастает, это приближает его на один шаг к получению следующего уровня. Всего, чтобы получить уровень, нужно повысить главные или важные навыки 10 раз, однако Виктор проделал это уже N раз на текущем уровне.
Чтобы повысить уровень одного из навыков с L до L + 1, нужно накопить X очков этого навыка, причём X зависит от L следующим образом:
X = 10·L.
Возможно, что Виктор уже накопил для каких-то навыков некоторое количество очков Y < X. После накопления X очков, их количество сбрасывается до нуля, а уровень навыка повышается на единицу. Если уровень навыка уже равен 100, то невозможно получать очки этого навыка.
Зная, какое количество раз N из требуемых десяти Виктор уже повышал главные и важные навыки на текущем уровне, какие навыки его персонажа являются главными и важными, а так же текущее значение уровня каждого навыка и набранное количество очков этого навыка, определите, какое минимальное суммарное число очков навыков Виктору предстоит набрать, чтобы повысить уровень своего персонажа.
В первой строке входного потока содержится одно целое неотрицательное число N < 10 — количество уже произошедших повышений главных и важных навыков персонажа Виктора на текущем уровне.
Далее, после пустой строки, следует 5 строк с названиями главных навыков персонажа. После ещё одной пустой строки следуют 5 строк с названиями важных навыков персонажа.
За ещё одной пустой строкой следуют 27 строк с описанием текущего состояния всех навыков персонажа. Каждое описание состоит из разделённых пробелами строки S и целых чисел L и Y, где S - название навыка, L — текущий уровень навыка, Y — текущее количество очков этого навыка (5 ≤ L ≤ 100, 0 ≤ Y < 10·L). Гарантируется, что если L равно 100, то Y имеет значение 0.
Названия навыков состоят из строчных и прописных латинских букв, дефисов, а так же пробелов.
Вывести одно целое число — суммарное количество очков навыков, которое необходимо набрать Виктору, чтобы получить следующий уровень. Если получить следующий уровень невозможно — вывести -1.
Стандартный ввод | Стандартный вывод |
---|---|
8 Long Blade Acrobatics Medium Armor Alchemy Alteration Block Unarmored Athletics Security Hand-to-Hand Long Blade 90 801 Blunt Weapon 53 41 Axe 5 0 Armorer 5 0 Medium Armor 100 0 Heavy Armor 100 0 Spear 33 41 Block 77 301 Athletics 67 217 Alchemy 75 672 Enchant 27 63 Conjuration 5 0 Alteration 87 73 Destruction 93 14 Mysticism 5 49 Restoration 13 50 Illusion 27 98 Unarmored 65 0 Acrobatics 93 701 Security 71 231 Sneak 56 13 Light Armor 14 31 Marksman 43 107 Short Blade 37 14 Hand-to-Hand 90 501 Mercantile 31 4 Speechcraft 60 0 | 177 |
В приведённом примере Виктору следует повысить навык Alchemy до 76 и навык Long Blade до 91.