Multi-version key-value store

Write codeHard35 minOracle and Snowflake style

Your task

Implement a multi-version key-value store with point-in-time reads (MVCC). A logical clock starts at 0 and increments by 1 on every "put". Process operations: ["put", key, value] writes value to key at the new timestamp (the clock after incrementing); ["get", key, ts] reads the value key had AS OF timestamp ts, i.e. the value of the most recent put to that key whose timestamp is <= ts, or the string "<none>" if the key had no put at or before ts. Return a list with the result of each "get" op in order. The first put happens at timestamp 1. Keys/values are strings; <= 10^5 ops.

Examples

mvcc_store(ops: list[list]) -> list[str]
Example 1
Inputmvcc_store([["put", "a", "v1"], ["put", "a", "v2"], ["get", "a", 1], ["get", "a", 2]])
Output["v1", "v2"]