Вы находитесь на странице: 1из 9

Tim loves spreadsheets.

Everything he does on a computer, he does in a


spreadsheet. Track his expenses? Create a spreadsheet! Decide which car to
buy? Create a spreadsheet to compare them! Make an inventory of his
games? Create a spreadsheet! Decide which girl he loves most? …
Unfortunately his spreadsheet software just crashed and he needs some
of the data right now and does not have the time to install a competing
office suit.
Problem specification
Given the formulas used in the cells of a spreadsheet, calculate the values
of all the cells.
Input specification
The first line of the input file contains an integer T specifying the number
of test cases. Each test case is preceded by a blank line.
Each test case starts a single number N giving the number of expression.
Each of the following N lines contains a single cell formula of the form “CELL
= EXPRESSION”, where CELL is the name of the cell and EXPRESSION is a
mathematical expression consisting of cell names and the operators +, -, *
and /. A cell name is a non-empty sequence of letters followed by a positive
integer.
Each test case is correct: there are no cycles, and all cells referenced in
expressions have definitions.
Evaluating expressions
When evaluating an expression, usual priorities apply: first we evaluate
all * and / (left to right), and only then all + and - (again, left to right).

You may assume that the expressions are such that when evaluating the
expression in correct order, the result and also all intermediate values will fit
into 32-bit signed integer variables.

The operator / represents integer division which is always rounded


down. The dividend will always be non-negative and the divisor will always
be positive.
Output specification
For each test case output the calculated values of cells, one per line, in
the form “CELL = VALUE”. The rows in the output should be ordered
alphabetically. (To compare two rows, take a look at the first character
where they differ. The one with a smaller ASCII value goes first.)
Optionally, output a blank line between test cases.
Example
input
2

3
A47 = 5 + ZZ22
ZZ22 = 3
A9 = 13 + A47 * ZZ22

2
A1 = 4 / 7 + 4 / 7
B2 = 3 * 3 / 7
output
A47 = 8
A9 = 37
ZZ22 = 3

Testcase – Sample input


10

12
I38 = 58 - W37 + W37 + A98
V93 = 15 + 13 * 24 - 39 * 5 * 1
I33 = A98 - 0 - 1 + W37 * 18
T72 = C95 * 26 - 29
C20 = 2 * W37 + 19 + W37
O25 = I38 * A98 - W37 + 40 + 9
A98 = W37 - 48 * 1 * 1 * 1
C95 = 53 + 19 * 2 - 58
E55 = 50 * 1 * 15 * 1 * 1
M30 = 7 * 28 * 5 - 38
T32 = 29 * 30 - 28 * 28 / 784 + 14
W37 = 48 + 2 * 63 * 1 / 126

16
F77 = 51 + R81 + H48 - 26 * 1
I63 = 64 * R81 * 2
A55 = 44 * R81 * 1 + R81 - R81
E97 = R81 - R81 + R81 * 40 - R81 * R81
V18 = H48 - 51 + B85 + 13 - 50
X96 = 39 + 48 + 1 * 14 + 38
R98 = V18 + R81 + O99 - V18
T83 = R81 * R81 * R81 - R81
H48 = 46 * 19 + 42 - B85 * 12 * 2 * 1
B85 = R81 * R81 * 24 / 144 * R81 + R81 - R81
K94 = I21 + H48 - R81 * 6 / 6 + 21
M90 = V18 * 18 - 0 * B85 * 45 / 45 * 21
I21 = M90 - V18 + O99
R81 = 63 - 32 * 1 * 1 - 25
O99 = R81 - R81 - 0 - 0 * R81 - 0
Z76 = H48 * 17 - O99 + 38 + R81 - H48 * 7

17
J49 = W51 + W51 - 13 + 41 + 39 + U83
J77 = M40 * 28 * 1 / 1 + D91 + W51
U83 = W51 - W51 * 1 * 1
U15 = M40 - Y75 + U75 * 15 * 14 / 210
W51 = 38 * 2 - 0 + 33 - 59
G15 = 20 * W51 - U15 * 7 / 7 * 50 + U15
O55 = U15 - D91 - M40 - U75 * 45
Z86 = Y75 * 63 * 9
Q27 = D91 + 28 * 30
U75 = M40 - 0 - U83 * W51 * 2
Q76 = 34 + 58 * 17 + M40
M40 = U83 * 12 * W51
W50 = U15 + U15 + D91
O86 = W51 - M40 + Y75 + 34 + 37 - W51
Y75 = U83 - U83 - 0 + U75 * W51 / 50
N61 = M40 - 0 + Z86 * 33 - M40
D91 = Y75 * W51 * 36 * W51 - U75

20
G76 = X18 * B94 + G37 - 0 * 8
V10 = F36 * 16 * B94 / 9 * 24
F36 = X98 + X98 - X98 + X98
R40 = G27 + 13 + Q22
M23 = Q27 + X58 * B94 - X58 - X18 - X58
G27 = X18 * 25 - 0 * 49 - X18 - X98 - X98
Q22 = F36 * 20 - 0 * 51
W49 = 6 - Z39 + F36
B94 = G27 + 9 + F36
X58 = F36 - X18 + G27 + G27 - F36
X98 = 0 * 1 - 0
P44 = W49 * 49 + Q27 * B94 + X98
L58 = W49 * 49 - B94 - G76 * B94 * B94 * 15
Z39 = Q27 - X18 - Q27 - G37 + X58 * 29
K19 = M93 * R40 - X98 + G76 - G27
X18 = F36 * 15 + X98
M93 = X18 + Q27 - M23 * R40 + 50
Q27 = X18 * B94 - X98 + X18 * 37 - G27 * B94
G37 = Q27 * B94 - Q22 * 16
B74 = X58 + 2 + X58 * R40 - Q27

15
I97 = 34 + 38 + 49 * 12
I93 = T97 + 33 - F73 * 9 + H65 * F73
G97 = T97 + F73 + G58 - T97 + F73 - U85
A67 = 27 - 27 * 1 * 1 / 1 - 0 - 0
D31 = H65 * 5 + A67 * H65 + A67
U85 = 36 * F73 - A67 * 5 - T97 * F73 - 43
F73 = 59 - G58 - 17
P79 = 8 * F73 + G58
H65 = A67 * 58 + 50 - A67
R29 = Y51 * 12 - G58 + G58
R12 = 1 - 0 + H65 + Y51
Q37 = 58 + 64 * 9 * 1 / 576 * 17 * 11
G58 = 34 + 13 + Y51 - 57 + A67
Y51 = H65 - A67 * H65 / 50
T97 = H65 - A67 - H65 - A67 * 16 * 21 / 21

19
T14 = 29 * 1 * 19 * 1 * 1 / 19
Y30 = 28 - 26 + 59 + 45 - 51
L20 = 14 * 61 - Y30 * 6 + T14 + 15
F81 = W99 * T14 * M94 / 957 * 64 - W99 + W99
S33 = 4 * 13 * 15 + Y30 * 2 / 2
F48 = Y30 + F81 + 1 - W99 * 3
W99 = T14 - T14 * 1 / 1
W76 = W99 - 0 * 30 * T14 / 870
E72 = W99 + 3 * Y30
M94 = 42 - T14 * 1 + 20
F63 = 58 * 14 - 46 * 3 + 4 - 63 + 7
C85 = 63 * 3 * 5 / 5 + 3 + 61
H47 = M94 + T14 + Y30
D85 = T14 - 25 - 0 + 53 * 5 / 5
E63 = 16 + F81 * M94 + W99
K75 = 48 * 3 + Y30
T66 = T14 - T14 * 1
L45 = 5 * M94 - 24 * 2 + 48 - 36
Q43 = Y30 * 8 * 1 + Y30 + 59 - T14

14
M94 = Q74 * 25 * 1
G24 = Q74 + I97 - I97 + X11 + I97
H22 = I97 - 0 - 0 * 5 * Y27 - 0
I97 = 1 - 1 - 0
Q74 = I97 + 62 + 30 - X11 * 1 * 1
X11 = 26 * 14 * 2 / 14
K64 = H22 * 18 * R18 / 9 * 26 * 36
Z55 = X11 * 13 * 1 / 1 + I97 * X11
R18 = H22 + 19 - 5 * 1 * 1 * 1 * 2
Z48 = I97 * X11 - I97 + R18
Y27 = I97 + X11 + 4 - X11 + X11 + 0 + I97
Z10 = X11 * 5 * 1 + Y27 * 5 * 2
E10 = I97 + Y27 * 2 - R18 * 2 + Y27
Z56 = X11 * Z48 + Z48 + I97 * Q74 + Y27

30
D67 = W53 - W53 + O94
L21 = J62 * J62 - 9 + 38 * 11 * 1 / 418
N96 = O94 - 52 * 1 + 63 * J62 / 63 * O94
O88 = E15 + O94 + 5
E47 = C78 * J62 + O94 - 10
L31 = D67 * 7 - 61 * 6 / 6 + J62
P51 = D43 * C78 - C78
U14 = L21 - 1 - 0 + 4 * E15 * 3
E15 = J62 + J62 + 53
E90 = 62 * 5 * 2 * 1 / 2
D83 = E15 - L21 * 31 / 31
F57 = D43 * W53 * 2 - Z16 - L21 + J62 * 19
J62 = 5 - 2 * 1 * 1 * 1 - 0 - 0
G37 = C78 - L21 * C78 + J62 + 16 + E15
D47 = J62 * C78 * J62 + 1 - C78
N76 = O94 - 40 + C78 - C78 * 1 * 1 / 54
V99 = D67 * 10 + Z16 - O94
D43 = 13 + 7 * J62 - 22 + E15 - C78
X54 = D67 + O94 * J62 / 186 + O94 + C78
H82 = C78 * 16 + O94
I28 = O94 * 7 + 47 * 6 / 282 * 13
O94 = C78 + C78 - 62 + C78 - 38 * 1
J74 = J62 + 30 - 3 - 2 + E15 * 14 - E15
W53 = J62 + 12 + O94 - 50
Z16 = W53 * L21 * L21
J10 = 40 * 25 - L21
Y68 = 18 * J62 - L21 * 29 + 43
G68 = D83 - Z16 * 1 * 1 / 1
X64 = 46 * D43 * 1 / 1 * 1 - 50
C78 = 41 * 1 + 13

17
B45 = 10 + 22 * 11 / 242 * 22 * 23 + 36
L52 = W70 * W70 + W70 * W70 / 1 + W70 - 3
I82 = V98 * W70 * 21 * 6 / 126 * 62
L32 = 7 * 34 + W70 * W70
G41 = L52 - 0 + L52
L70 = 52 * 4 * 1 * H93 / 4 * K96
T80 = X73 - X73 + V98 * 27 - J17 - I82
K96 = H93 - W70 + H93 * H93 / 1
F24 = W70 - H93 * H93 / 1
K46 = L70 - W70 + K96 * W70 * H93 + G41
X73 = G41 * W70 * 41 / 41 * 41
W70 = 45 - 44 * 1 / 1
C62 = 28 - F24 + 1 * L70
V24 = L52 - 0 * 38 - L52 - L52 - 0
H93 = V24 * 13 - L52 + W70 * W70 * 49 / 49
J17 = L52 - V24 * 35 + V24 * W70
V98 = J17 - 0 * 37 / 37 * K96 - 0

15
O82 = 49 + 33 - 42 + 3 * 29
L44 = R27 + 52 * 17
O31 = 15 - 8 - 2
J23 = 23 - 12 + 32 - 22 + 12
O94 = 50 + K65 * I19 + 49 - 36 + O31
S17 = O31 * 54 - O31 * I19 * 2
B14 = O31 + I19 - I19 - 5 * 1 / 5
B69 = 10 + K65 * R27
X36 = 47 * 13 * 1 - 38
I19 = O31 + 45 * 3 - R27 * O31
M75 = O31 + J23 * R27 / 24 + K65
R27 = 57 - J23 * 1
K65 = 50 - 14 + J23 - J23
W39 = 39 * 2 - 19 + 48
V51 = R27 + I19 + K65 * I19 * 1 + K65 + J23

Expected Output
A98 = 1
C20 = 166
C95 = 33
E55 = 750
I33 = 882
I38 = 59
M30 = 942
O25 = 59
T32 = 883
T72 = 829
V93 = 132
W37 = 49

A55 = 264
B85 = 36
E97 = 204
F77 = 83
H48 = 52
I21 = 0
I63 = 768
K94 = 67
M90 = 0
O99 = 0
R81 = 6
R98 = 6
T83 = 210
V18 = 0
X96 = 139
Z76 = 564

D91 = 0
G15 = 1000
J49 = 167
J77 = 50
M40 = 0
N61 = 0
O55 = 0
O86 = 71
Q27 = 840
Q76 = 1020
U15 = 0
U75 = 0
U83 = 0
W50 = 0
W51 = 50
Y75 = 0
Z86 = 0

B74 = 2
B94 = 9
F36 = 0
G27 = 0
G37 = 0
G76 = 0
K19 = 650
L58 = 285
M23 = 0
M93 = 50
P44 = 294
Q22 = 0
Q27 = 0
R40 = 13
V10 = 0
W49 = 6
X18 = 0
X58 = 0
X98 = 0
Z39 = 0

A67 = 0
D31 = 250
F73 = 2
G58 = 40
G97 = 15
H65 = 50
I93 = 115
I97 = 660
P79 = 56
Q37 = 245
R12 = 101
R29 = 600
T97 = 0
U85 = 29
Y51 = 50

C85 = 253
D85 = 57
E63 = 16
E72 = 165
F48 = 56
F63 = 622
F81 = 0
H47 = 117
K75 = 199
L20 = 568
L45 = 129
M94 = 33
Q43 = 525
S33 = 835
T14 = 29
T66 = 0
W76 = 0
W99 = 0
Y30 = 55

E10 = 150
G24 = 92
H22 = 0
I97 = 0
K64 = 0
M94 = 1000
Q74 = 40
R18 = 9
X11 = 52
Y27 = 56
Z10 = 820
Z48 = 9
Z55 = 676
Z56 = 533

C78 = 54
D43 = 17
D47 = 433
D67 = 62
D83 = 58
E15 = 59
E47 = 214
E90 = 310
F57 = 947
G37 = 78
G68 = 31
H82 = 926
I28 = 447
J10 = 999
J62 = 3
J74 = 795
L21 = 1
L31 = 376
N76 = 75
N96 = 196
O88 = 126
O94 = 62
P51 = 864
U14 = 708
V99 = 585
W53 = 27
X54 = 179
X64 = 732
Y68 = 68
Z16 = 27

B45 = 552
C62 = 80
F24 = 0
G41 = 0
H93 = 1
I82 = 0
J17 = 0
K46 = 52
K96 = 1
L32 = 239
L52 = 0
L70 = 52
T80 = 0
V24 = 0
V98 = 0
W70 = 1
X73 = 0

B14 = 4
B69 = 874
I19 = 20
J23 = 33
K65 = 36
L44 = 908
M75 = 74
O31 = 5
O82 = 127
O94 = 788
R27 = 24
S17 = 70
V51 = 833
W39 = 107
X36 = 573

-------------------------------------------------------------------------------------
---

Вам также может понравиться