calctab

Time limit: 0.02s Memory limit: 2MB Input: calctab.in Output: calctab.out

Cerință

Avem o foaie de calcul, asemănătoare cu un excel și dorim să aflăm valorile din toate celulele sale.
Foaia de calcul este sub formă de matrice, cu NN linii și NN coloane, numerotate de la 11 la NN.
La intrare, pentru unele celule se specifică direct valoarea (un număr natural) sau o formulă. Formula poate reprezenta fie suma fie produsul a doi termeni. Cei doi termeni pot fi valori naturale constante sau numele unor celule.

Date de intrare

Pe prima linie a fișierului de intrare calctab.in se află un număr natural NN reprezentând dimensiunea foii de calcul pătratice.
Pe fiecare dintre următoarele NN linii, se află câte NN șiruri, separate prin câte un spațiu, reprezentând, în ordine, informații despre celulele de pe linia respectivă.
Dacă valoarea este un singur număr natural, atunci ea reprezintă chiar valoarea celulei. Pentru celulele la care sunt indicate formule șirul este de tipul X+Y sau X*Y (fără alte spații în interior).
Valoarea XX poate fi doar un identificator de celulă, iar valoarea YY poate fi un număr natural sau un identificator de celulă. Identificatorul de celulă are 66 cifre, prima este L, urmată de două cifre indicând numărul liniei, apoi C urmat de două cifre indicând numărul coloanei (pentru liniile și coloanele de la de la 11 la 99 codurile se scriu sub forma 01,02,,0901, 02, \dots, 09).

Date de ieșire

Fișierul de ieșire calctab.out va conține valorile numerice ale matricei, în ordine, câte NN pe linie, separate prin câte un spațiu. Dacă matricea nu se poate calcula în întregime, în locul valorilor ce nu se pot calcula se va scrie -1.

Restricții și precizări

  • 1N991 \leq N \leq 99;
  • toate valorile din matrice, atât cele date cât și cele calculate au maxim 99 cifre și sunt pozitive;
  • se garantează că formatul datelor de intrare este corect, așa cum a fost descris;
  • pentru teste în valoare de 7272 de puncte, în fișierul de intrare nu sunt formule cu înmulțiri.

Exemplul 1

calctab.in

2
2 L01C01+3
L01C01+L01C02 11

calctab.out

2 5
7 11

Exemplul 2

calctab.in

2
2 L02C01+L02C02
L01C02+L02C02 L01C02+L02C01

calctab.out

2 -1
-1 -1

Log in or sign up to be able to send submissions!