28 lines
707 B
Python
28 lines
707 B
Python
import json
|
|
import sys
|
|
from typing import TypeAlias
|
|
|
|
JsonObject: TypeAlias = dict[str, "JsonObject"] | list["JsonObject"] | int | str
|
|
|
|
|
|
def json_sum(value: JsonObject, ignore: str | None = None) -> int:
|
|
if isinstance(value, str):
|
|
return 0
|
|
elif isinstance(value, int):
|
|
return value
|
|
elif isinstance(value, list):
|
|
return sum(json_sum(v, ignore=ignore) for v in value)
|
|
elif ignore not in value.values():
|
|
return sum(json_sum(v, ignore=ignore) for v in value.values())
|
|
else:
|
|
return 0
|
|
|
|
|
|
data: JsonObject = json.load(sys.stdin)
|
|
|
|
answer_1 = json_sum(data)
|
|
print(f"answer 1 is {answer_1}")
|
|
|
|
answer_2 = json_sum(data, "red")
|
|
print(f"answer 2 is {answer_2}")
|