• 31

Learning Opportunities

This puzzle can be solved using the following concepts. Practice using these concepts and improve your skills.



Imagine yourself on a battlefield like in the good-old times when you played Heroes of Might and Magic (HoMM).
The combat is turn-based. Two stacks of units sequentially attack each other until one of them is destroyed.

Combat rules:
* Stack 1 always attacks first.
* Each stack has a unit name, the total amount of units in stack, the health of 1 unit and the damage dealt by 1 unit.
* Damage is applied to the enemy stack unit by unit. If part of the damage is enough to kill the first unit, the remaining damage is applied to the subsequent unit.
* Units cannot avoid or counter attacks (as they did in HoMM), instead they attack on their turn.
* Combat always starts from Round 1.
* A round ends when both stacks have attacked each other, or when one of the stacks has been eliminated.
Each line is a string that consists of stack data separated by; in the following format.
Data includes: name of units (string);amount of units (integer);health per unit (integer);damage per unit (integer).
Line 1: Stack 1 data.
Line 2: Stack 2 data.
You have to list combat log and announce the winner.
Refer to the example for the exact output format and wordings to use.
Common log section consists of:
Line 1: Current round number.
Line 2: Stack 1 attack result (who attacks whom dealing how much damage).
Line 3: Number of units perished during the attack.
Line 4: Mid-round separator ----------
Line 5: If Stack 1 defeats Stack 2 there must be a win message and this line will be the last.
Line 6: Stack 2 attack result (who attacks whom dealing how much damage).
Line 7: Number of units perished during the attack.
Line 8: Round end separator ##########
Line 9: If Stack 2 defeats Stack 1 there must be a win message and this line will be the last.
While both stacks have at least 1 unit the battle continues.
3 ≤ length of name ≤ 20
1 ≤ amount ≤ 10000
1 ≤ health ≤ 300
1 ≤ damage ≤ 50
Round 1
20 Minotaur(s) attack(s) 16 Unicorn(s) dealing 200 damage
5 unit(s) perish
11 Unicorn(s) attack(s) 20 Minotaur(s) dealing 154 damage
4 unit(s) perish
Round 2
16 Minotaur(s) attack(s) 11 Unicorn(s) dealing 160 damage
4 unit(s) perish
7 Unicorn(s) attack(s) 16 Minotaur(s) dealing 98 damage
3 unit(s) perish
Round 3
13 Minotaur(s) attack(s) 7 Unicorn(s) dealing 130 damage
3 unit(s) perish
4 Unicorn(s) attack(s) 13 Minotaur(s) dealing 56 damage
1 unit(s) perish
Round 4
12 Minotaur(s) attack(s) 4 Unicorn(s) dealing 120 damage
3 unit(s) perish
1 Unicorn(s) attack(s) 12 Minotaur(s) dealing 14 damage
1 unit(s) perish
Round 5
11 Minotaur(s) attack(s) 1 Unicorn(s) dealing 110 damage
1 unit(s) perish
Minotaur won! 11 unit(s) left

A higher resolution is required to access the IDE