Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2017-03-27 23:03:10.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:worms.in, worms.outSursăConcursul National de Informatica "Adolescent Grigore Moisil" 17
AutorChichirim GeorgeAdăugată deAGMinformaticaAGMInformatica AGMinformatica
Timp execuţie pe test0.1 secLimită de memorie65536 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Worms

Spiro a descoperit o noua specie de rame. Aceste a observat ca fiecare individ are un anumit nivel care ii determina puterea sa de lupta: daca individul respectiv are o putere de baza p si un nivel n atunci puterea acestuia de lupta este pn. Initial, Spiro are un grup de Nr rame cu nivelele cuprinse intre 0 si 15. Aceste rame se vor da in fisierul de intrare sub forma unui vector a cu 16 elemente, unde a_i reprezinta numarul de rame de nivel i (se garanteaza ca a_{15}>=1).
Spiro vrea sa isi distribuie colectia intr-o ferma de rame. Astfel, el are la dispozitie o retea de N camere numerotate de la 1 la N care sunt legate intre ele prin M tunele. Tunele nu se suprapun si nu pot traversa unul peste celalat intrucat ferma de rame este foarte subtire si nu ar avea loc efectiv sa se intample asta. Cu alte cuvinte daca exista 2 tunele care se intersecteaza, cu siguranta in acel punct se afla o camera.
Apoi, in urmatoarele Q zile, acesta efectueaza una din operatiile de mai jos:

  • 1 n -> Spiro, prin abilitatile sale exceptionale de biolog, face rost de inca o rama de nivel 2*n (0 ≤ n ≤ 7) si o adauga la grupul curent
  • 2 x -> pentru ca lui Spiro ii place foarte mult grupul pe care il are in momentul respectiv, aceste face o copie la grup prin metode foarte dubioase de un extraordinar biolog, si il amplaseaza in camera cu indicele x. Cand un nou grup este amplasat intr-o camera, ramele care formeaza acest grup se vor imperechea cu orice rama deja existenta in acea camera. Astfel, dupa ce un grup este amplasat, in acea camera se afla ramele care erau deja acolo, ramele din grupul amplasat si alte nr1*nr2 rame rezultate din imperecherea fiecarei rame care era deja in camera cu fiecare rama din grupul amplasat ( nr1=numarul de rame care erau deja in camera si nr2=numarul de rame din grupul amplasat). Cand o rama de nivel n1 se imperecheaza cu o rama de nivel n2, atunci rama rezultata va avea nivelul n = n1 + n2

Date de intrare

Fişierul de intrare worms.in ...

Date de ieşire

În fişierul de ieşire worms.out ...

Restricţii

  • ... ≤ ... ≤ ...

Exemplu

worms.inworms.out
This is some
text written on
multiple lines.
This is another
text written on
multiple lines.

Explicaţie

...

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?