Mehrstufige Filterung und Aggregation von Daten mit Lambda-Ausdrücken
Kotlin
Hard
lambdas
Aufgabe «Mehrstufige Filterung und Aggregation von Daten mit Lambda-Ausdrücken»
Schreiben Sie ein Programm in Kotlin, das eine Liste von Zeichenketten von der Standardeingabe einliest. Jede Zeichenkette enthält durch Leerzeichen getrennte Zahlen. Mit Lambda-Ausdrücken und Funktionen höherer Ordnung (map, filter, reduce, takeWhile, dropWhile usw.) sind folgende Aktionen durchzuführen: Filtern Sie die Zeichenketten, bei denen die Anzahl der Zahlen ein Vielfaches von 2 ist, wählen Sie dann aus jeder solchen Zeichenkette nur positive Zahlen (größer als null) aus, und berechnen Sie anschließend für jede Zeichenkette das Produkt aller ausgewählten Zahlen, potenziert mit der Anzahl der Zahlen in der ursprünglichen Zeichenkette. Wenn nach der Filterung keine Zahlen in der Zeichenkette verbleiben, ist das Produkt als 0 anzunehmen. Geben Sie die Ergebnisse in aufsteigender Reihenfolge aus. Einschränkungen: Die Anzahl der Zeichenketten überschreitet 100 nicht, jede Zahl ist betragsmäßig nicht größer als 1000.
Eingabeformat
Die erste Zeile enthält eine ganze Zahl N (1 ≤ N ≤ 100) — die Anzahl der Zeichenketten. Danach folgen N Zeilen, jede davon enthält durch Leerzeichen getrennte ganze Zahlen. Die Anzahl der Zahlen in einer Zeichenkette überschreitet 50 nicht.
Ausgabeformat
Geben Sie N ganze Zahlen aus — die Ergebnisse der Verarbeitung jeder Zeichenkette, sortiert in aufsteigender Reihenfolge, jede auf einer neuen Zeile.
Beispiele
Beispiel 1
EINGABE
3
User Alice 25
Address Moscow Tverskaya
Product 1 Laptop 999.99
AUSGABE
Для данного ввода задача не определена, так как строки не содержат только числа.
Beispiel 2
EINGABE
1
User Bob 30
AUSGABE
Для данного ввода задача не определена, так как строка не содержит только числа.
main.kt