def factorial
(i
: Int
): Int
= if (i
== 1) i
else i
* factorial
(i -
1)
def calc
(s
: String
): Double
= { var list
= Seq.
empty[Double
] s.
split(" ").
foreach(s
=> s
match { val List
(a, b, temp
@ _*) = list
list = (b + a) +: temp
val List
(a, b, temp
@ _*) = list
list = (b - a) +: temp
val List
(a, b, temp
@ _*) = list
list = (b * a) +: temp
val List
(a, b, temp
@ _*) = list
list = (b / a) +: temp
val List
(a, b, temp
@ _*) = list
list = (b.toInt / a.toInt).toDouble +: temp
val List
(a, b, temp
@ _*) = list
list = (b % a) +: temp
val List
(a, b, temp
@ _*) = list
list = math.pow(b, a) +: temp
val List
(a, temp
@ _*) = list
list = factorial(a.toInt).toDouble +: temp
case _ => list
= s.
toDouble +
: list
})
if (list.
size > 1) throw new IllegalArgumentException
}
io.Source.stdin.getLines.foreach(l => println(calc(l)))
}
b2JqZWN0IE1haW4gZXh0ZW5kcyBBcHAgewogIGRlZiBmYWN0b3JpYWwoaTogSW50KTogSW50ID0gaWYgKGkgPT0gMSkgaSBlbHNlIGkgKiBmYWN0b3JpYWwoaSAtIDEpCiAgCiAgZGVmIGNhbGMoczogU3RyaW5nKTogRG91YmxlID0gewogICAgdmFyIGxpc3QgPSBTZXEuZW1wdHlbRG91YmxlXQogICAgcy5zcGxpdCgiICIpLmZvcmVhY2gocyA9PiBzIG1hdGNoIHsKICAgICAgY2FzZSAiKyIgPT4gCiAgICAgICAgdmFsIExpc3QoYSwgYiwgdGVtcCBAIF8qKSA9IGxpc3QKICAgICAgICBsaXN0ID0gKGIgKyBhKSArOiB0ZW1wCiAgICAgIGNhc2UgIi0iID0+CiAgICAgICAgdmFsIExpc3QoYSwgYiwgdGVtcCBAIF8qKSA9IGxpc3QKICAgICAgICBsaXN0ID0gKGIgLSBhKSArOiB0ZW1wCiAgICAgIGNhc2UgIioiIHwgIngiID0+CiAgICAgICAgdmFsIExpc3QoYSwgYiwgdGVtcCBAIF8qKSA9IGxpc3QKICAgICAgICBsaXN0ID0gKGIgKiBhKSArOiB0ZW1wCiAgICAgIGNhc2UgIi8iID0+CiAgICAgICAgdmFsIExpc3QoYSwgYiwgdGVtcCBAIF8qKSA9IGxpc3QKICAgICAgICBsaXN0ID0gKGIgLyBhKSArOiB0ZW1wCiAgICAgIGNhc2UgIi8vIiA9PgogICAgICAgIHZhbCBMaXN0KGEsIGIsIHRlbXAgQCBfKikgPSBsaXN0CiAgICAgICAgbGlzdCA9IChiLnRvSW50IC8gYS50b0ludCkudG9Eb3VibGUgKzogdGVtcAogICAgICBjYXNlICIlIiA9PgogICAgICAgIHZhbCBMaXN0KGEsIGIsIHRlbXAgQCBfKikgPSBsaXN0CiAgICAgICAgbGlzdCA9IChiICUgYSkgKzogdGVtcAogICAgICBjYXNlICJeIiA9PgogICAgICAgIHZhbCBMaXN0KGEsIGIsIHRlbXAgQCBfKikgPSBsaXN0CiAgICAgICAgbGlzdCA9IG1hdGgucG93KGIsIGEpICs6IHRlbXAKICAgICAgY2FzZSAiISIgPT4KICAgICAgICB2YWwgTGlzdChhLCB0ZW1wIEAgXyopID0gbGlzdAogICAgICAgIGxpc3QgPSBmYWN0b3JpYWwoYS50b0ludCkudG9Eb3VibGUgKzogdGVtcAogICAgICBjYXNlIF8gPT4gbGlzdCA9IHMudG9Eb3VibGUgKzogbGlzdAogICAgfSkKICAgIGlmIChsaXN0LnNpemUgPiAxKSB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uCiAgICBlbHNlIGxpc3QuaGVhZAogIH0KICBpby5Tb3VyY2Uuc3RkaW4uZ2V0TGluZXMuZm9yZWFjaChsID0+IHByaW50bG4oY2FsYyhsKSkpCn0=