#!/usr/bin/env python3
import sys
from math_ivs import sqrt  


def read_numbers():
    """
    Načíta čísla z argv a stdin
    Vracia generátor (aby sme neukladali veľké pole)
    """
    
    for arg in sys.argv[1:]:
        try:
            yield float(arg)
        except ValueError:
            print(f"Chyba: neplatné číslo '{arg}'", file=sys.stderr)
            sys.exit(1)

    if not sys.stdin.isatty():
        for line in sys.stdin:
            for token in line.split():
                try:
                    yield float(token)
                except ValueError:
                    print(f"Chyba: neplatné číslo '{token}'", file=sys.stderr)
                    sys.exit(1)


def compute_stddev():
    """
    Výpočet výberovej smerodajnej odchýlky v jednom prechode
    """
    sum_x = 0.0
    sum_x2 = 0.0
    count = 0

    for x in read_numbers():
        sum_x += x
        sum_x2 += x * x
        count += 1

    if count < 2:
        return 0.0

    variance = max(0.0, (sum_x2 - (sum_x * sum_x) / count) / (count - 1))

    if variance < 0:
        variance = 0.0

    return sqrt(variance)  


def main():
    result = compute_stddev()
    print(result)


if __name__ == "__main__":
    main()
