Consider the general concept of a map, dictionary, or hash data structure.
E.g.
set( key: "a", value: 1 )
set( key: "b", value: 10 )
get( key: "a" ) returns 1
get( key: "b" ) returns 10
For this exercise, implement a map with history.
In this map, when you set a value, you also specify a time at which the key becomes that value, and stays that value until changed again. So, when you get the value of a key, you ask for the value of that key at a particular time.
E.g.
set( time: 0, key: "a", value: 1 )
set( time: 2, key: "a", value: 2 )
get( time: 0, key: "a" ) returns 1
get( time: 1, key: "a" ) returns 1
get( time: 2, key: "a" ) returns 2
get( time: 3, key: "a" ) returns 2
get( time: 4, key: "a" ) returns 2
...
You could use a data structure like this for time-series data storage, for example.