Title: Merkmale von Programmierparadigmen

### Dasselbe Problem, drei Denkweisen

Eine Spielfigur soll sich bewegen. Die drei Paradigmen setzen unterschiedliche
Schwerpunkte:

# Imperativ: Zustand Schritt für Schritt verändern

# Funktional: aus Eingaben einen neuen Wert berechnen
def neue_position(x, dx):
return x + dx

# Ereignisgesteuert: auf ein Ereignis reagieren
def on_key_down_right():
spieler.x += 10

In echten Programmen werden diese Denkweisen oft kombiniert. Ein
ereignisgesteuerter Handler kann beispielsweise eine reine Funktion aufrufen,
die den neuen Spielzustand berechnet.

Paradigmen erkennt man nicht zuverlässig an einzelnen Schlüsselwörtern. Eine
normale `def`-Funktion kann rein oder zustandsverändernd sein; auch `map` macht
ein Programm nicht automatisch funktional. Entscheidend sind die Eigenschaften
und der Schwerpunkt der Lösung.

Implementiere `paradigmen(veraendert_zustand, reine_berechnung,
reagiert_auf_ereignis)`. Gib eine Liste aller passenden Schwerpunkte in dieser
Reihenfolge zurück: `"imperativ"`, `"funktional"`, `"ereignisgesteuert"`.

- Zustandsänderung ist ein imperatives Merkmal.
- Eine reine Berechnung ist ein funktionales Merkmal.
- Eine Reaktion auf Tastendruck, Klick oder Kollision ist ereignisgesteuert.

Mehrere Merkmale können gleichzeitig zutreffen. Trifft keines zu, gib eine
leere Liste zurück.

def paradigmen(veraendert_zustand, reine_berechnung, reagiert_auf_ereignis):
pass

for _ in range(int(input())):
werte = [wert == "ja" for wert in input().split()]
print(paradigmen(*werte))

ja nein nein

nein ja nein

ja nein ja

nein ja ja

nein nein nein

ja ja ja