Kratki spoj


Submit solution

Points: 1
Time limit: 1.5s
Memory limit: 256M

Author:
Problem type
Allowed languages
C++, PyPy, Python

Mali Vitorio voli elektrotehniku. Naletio je u ladici na svoju kolekciju raznobojnih žica, te se upitao sljedeće:

Kada bi nasumično vadio dva kraja žica i lemljenjem ih spajao zajedno, vraćajući ih nazad, i to radio sve dok više ne ostane nepovezanih krajeva, koliki bi bio očekivani broj krugova koji bi se na kraju formirao?

Krajevi koje spoji mogu pripadati istoj žici (tada se odmah stvara krug), ili različitim (i nastavlja se građenje struktura koje mogu kasnije formirati krug).

Vitorio želi da se za svaki slučaj izračuna očekivani broj krugova za zadani broj žica.

Kao mali znak pažnje, Vitorio je ostavio papirić sa svojom najdražom konstantom:
0.57721566490153286060651209008240243104215933593992

Ulaz
  • Prvi redak sadrži broj \(t\) — broj testova. \((1 \leq t \leq 100\,000)\)
  • Sljedećih $t$ redaka sadrži po jedan cijeli broj \(n_i\) — broj žica. \((1 \leq n_i \leq 10^{14})\)
Izlaz

Za svaki test ispiši očekivani broj krugova koji će se stvoriti nakon svih lemljenja.
Rješenje se smatra točnim ako je relativna ili apsolutna pogreška manja od \(10^{-5}\).

Primjer ulaza
3
4
10
5
Primjer izlaza
1.676190476190476
2.133255530159555
1.787301587301587

Comments

There are no comments at the moment.