Tự cài lru(capacity) trả về decorator: dùng OrderedDict, đếm hits và misses, expose qua thuộc tính .stats() (trả về tuple (hits, misses, size)). Chain @count_calls ngoài @lru(capacity) cho hàm f(x) = x*x + x. Đọc dòng Q capacity, rồi Q dòng x. Mỗi truy vấn in f(x). Cuối cùng in trên 1 dòng calls hits misses size.
Dòng đầu Q capacity. Q dòng sau mỗi dòng x.
Lưu ý: count_calls chain NGOÀI lru, tức wrapper ngoài cùng. .stats() của lru phải truy cập được qua f.__wrapped__.stats() — đề bài quy định: lru gắn .stats lên wrapper của nó, và count_calls gắn .calls cùng phơi bày inner qua thuộc tính .inner. In f.calls f.inner.stats(). 1<=Q<=10^4, 1<=capacity<=100, |x|<=1000.
Q dòng kết quả, sau đó dòng cuối calls hits misses size.
Ví dụ:
Đầu vào:
5 2
1
2
1
3
2
Đầu ra:
2
6
2
12
6
5 1 4 2
Giải thích:
Đang tải editor...