Pliere

Time limit: 0.1s Memory limit: 64MB Input: pliere.in Output: pliere.out

Cerință

Avem un vector cu nn numere naturale. Vom aplica de mai multe ori o operație de pliere până când ajungem la un vector format dintr-un singur element (la o aplicare a operației vectorul se modifică iar următoarele aplicări se fac pe vectorul modificat).

La o pliere, ultimul element se suprapune peste primul, penultimul peste al doilea, antepenultimul peste al treilea etc. Dacă nn este impar, ultimul element nu se poate plia, așa că el se extrage și se notează separat. Noul vector va avea [n2][\frac{n}{2}] elemente, și fiecare este egal cu suma celor două care ajung unul peste altul în urma plierii.

Pe vectorul nou obținut se aplică o nouă operație de pliere și tot așa până ajungem la un vector format dintr-un singur element, care nu se mai poate plia, dar se notează separat.

Să se determine numerele notate separat.

Date de intrare

Fișierul pliere.in conține pe prima linie numărul nn iar pe linia a doua, separate prin spații, cele nn elemente ale vectorului inițial.

Date de ieșire

Fișierul pliere.out conține pe prima linie numerele notate separat, în ordinea obținerii lor, separate prin câte un spațiu.

Restricții și precizări

  • 1n100 0001 \leq n \leq 100 \ 000;
  • Elementele vectorului inițial sunt numere naturale de cel mult 2 cifre

Exemplu

pliere.in

11
2 3 4 7 5 6 2 1 9 4 6

pliere.out

6 13 30

Explicație

Vectorul inițial are număr impar de elemente, deci cel din mijloc, 66, se va nota separat.
În urma plierii, noul vector este: 8 7 13 8 7

Acest vector are și el număr impar de elemente așa că 1313 se notează separat.
În urma plierii ajungem la vectorul 15 15.

Acesta are număr par de elemente, deci nu scriem separat nimic, iar în urma plierii se obține vectorul: 3030. Acest număr se notează separat și ne oprim.

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