excel

Time limit: 0.05s Memory limit: 2MB Input: excel.in Output: excel.out

Gigel s-a calificat la ONI 2007\text{ONI} \ 2007. Din păcate, sau din fericire, se întâlneşte iarăşi cu o problemă asemănătoare celei de la OJI\text{OJI}, Excel\text{Excel}.
Reamintim că o foaie de calcul în Excel\text{Excel} se prezintă sub forma unei suprafeţe liniate cu linii orizontale şi verticale. Prin intersecţia lor rezultă dreptunghiuri (numite celule), fiecare celulă având un nume format din una sau mai multe litere şi un număr, reprezentând coloana, respectiv linia pe care se află. De exemplu, celula din stânga sus este A1\text{A}1, urmată, pe linie, de B\text{B}, C1\text{C}1, \dots, Z1\text{Z}1, AA1\text{AA}1, AB1\text{AB}1, \dots, BA1\text{BA}1, \dots

Cerinţă

Dându-se mai multe celule sub forma LxCy\text{L}x\text{C}y, precum şi valorile aflate în aceste celule, să se afişeze numele celulelor folosind codificarea standard explicată mai sus.
Se defineşte o foaie Excel\text{Excel} ca fiind delimitată de linia 11, coloana 11, linia nn, coloana mm şi se completează această foaie cu valorile aflate în celulele descrise anterior. Indicii nn şi mm reprezintă indicele celei mai mari linii, respectiv coloane în care există o valoare diferită de zero. În această foaie se realizează însumarea valorilor la prima coloană. Se cere să se afişeze rezultatele obţinute în această coloană începând cu celula A1\text{A}1 până în celula An\text{A}n.

Date de intrare

Fişierul de intrare excel.in conţine mai multe linii, fiecare fiind de forma:
LxCy val\text{L}x\text{C}y \ \text{val} unde LxCy\text{L}x\text{C}y reprezintă o celulă dată prin linia xx, respectiv coloana yy, iar val\text{val} valoarea numerică pe care o conţine această celulă.

Date de ieşire

Fişierul de ieşire excel.out va conţine câte o linie corespunzătoare fiecărei linii din fişierul de intrare. Pe fiecare linie se va scrie numele celulei corespunzătoare din fişierul de intrare în formatul descris în enunţ (Coloana˘Linie)(\text{ColoanăLinie}). În plus fişierul de ieşire va mai conţine o linie ce va descrie coloana AA, obţinută în urma operaţiilor de însumare. Pe această coloană fiind mai multe valori dintre care foarte multe valori nule, se vor afişa: valAkvalA_k dacă în celula AkA_k există o valoare numerică diferită de 00, sau nr 0nr \ 0, unde nrnr reprezintă câte valori 00 consecutive sunt între două celule Ai AjA_i \ A_j, unde i<j,Ai0,Aj0i \lt j, A_i \neq 0, A_j \neq 0 şi Ak=0A_k = 0, cu i<k<ji \lt k \lt j.

Restricţii şi precizări

  • 1indicele de linie(x)30 000 0001 \leq \text{indicele de linie} (x) \leq 30 \ 000 \ 000
  • 1indicele de coloana˘(y)30 000 0001 \leq \text{indicele de coloană} (y) \leq 30 \ 000 \ 000
  • foaia de calcul, înainte de citirea fişierului de intrare, se consideră a fi „umplută” cu valoarea zero.
  • 32 000val32 000-32 \ 000 \leq \text{val} \leq 32 \ 000
  • în fişierul de intrare sunt cel mult 300300 de linii
  • între LxCy\text{L}x\text{C}y şi val\text{val} există un singur spaţiu
  • fişierul de intrare va conţine, după ultima linie, caracterul \n (final de linie)
  • se acordă 30%30\% din punctaj pentru afişarea corectă a numelor celulelor descrise în fişierul de intrare.

Exemplu

excel.in

L1C1 23
L3C1 100
L1C3 -100
L29999999C26 50
L52C52 25
L53C17576 24
L53C17602 100

excel.out

A1
A3
C1
Z29999999
AZ52
YYZ53
YZZ53
-77 1 0 100 48 0 25 124 29999945 0 50

Explicaţie

A1:23100=77\text{A}1: 23 - 100 = -77
A2:01 0\text{A}2: 0 \rightarrow 1 \ 0
A3:100\text{A}3: 100
A4 – A51:048 0\text{A}4 \ – \ \text{A}51: 0 \rightarrow 48 \ 0
A52:25\text{A}52: 25
A53:24+100=124\text{A}53: 24 + 100 = 124
A54 – A29999998:029999945 0\text{A}54 \ – \ \text{A}29999998: 0 \rightarrow 29999945 \ 0
A29999999:50\text{A}29999999: 50

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