# spec.md — Split the bill

Webová appka, která rozpočítá účet v restauraci mezi N lidí včetně spropitného.

## 1. Rozhodnutí s vysokou pravděpodobností změny
- **Měna a přesnost:** CZK, počítá se v haléřích (celočíselně), zobrazuje v Kč.
- **Ceny v menu jsou včetně DPH** — DPH se zvlášť nepočítá, je už v částkách.
- **Spropitné:** procento z celkové částky účtu (0, 10, 15 %). Volitelné.
- **Rozdělení:** rovným dílem mezi N lidí (základní režim).
- **Zbytkový haléř:** když částka nejde rozdělit beze zbytku, dostanou první
  osoby o 1 haléř víc, dokud se zbytek nerozdá.

## 2. Zadání (zdroj pravdy)
Vstup: celková částka účtu (Kč), počet lidí N, procento spropitného.
Výstup: co má zaplatit každá osoba, tak aby součet přesně seděl.

## 3. Akceptační kritéria (invarianty — musí platit vždy)
- **Zachování:** součet všech podílů == celková částka + spropitné, do haléře.
- **Nezápornost:** žádný podíl není záporný.
- **Férovost:** rozdíl mezi nejvyšším a nejnižším podílem je nejvýše 1 haléř.
- **Spropitné:** spropitné == round(základ × procento) a je součástí celku.

## 4. Edge cases
- N = 0 → chyba, ne dělení nulou.
- N = 1 → jeden člověk platí vše.
- Nedělitelná částka (100 Kč / 3) → 33,34 + 33,33 + 33,33.
- Záporná částka nebo záporné N → chyba na vstupu.

## 5. Mechanická část (nízké riziko)
- Jednoduchý webový formulář (částka, N, spropitné), tlačítko Rozpočítat.
- Výstup jako seznam podílů + kontrolní součet.
- Unit testy pro každý invariant a edge case.
