Viết @contextmanager resource(name) khi enter in open <name>, khi exit in close <name>. Đọc N tên tài nguyên và cờ commit (0/1). Dùng ExitStack mở tất cả; nếu commit=0, gọi stack.pop_all().close() ngay trước khi raise SystemExit? KHÔNG. Thay vào đó: nếu commit=1, in commit trước khi exit; nếu commit=0, in rollback trước khi exit. Sau đó để stack tự đóng theo LIFO.
Dòng đầu N commit. N dòng sau mỗi dòng một name.
1 <= N <= 100, commit in {0,1}.
open theo thứ tự, một dòng commit hoặc rollback, rồi close theo thứ tự ngược.
Ví dụ:
Đầu vào:
2 1
DB
File
Đầu ra:
open DB
open File
commit
close File
close DB
Giải thích:
Đang tải editor...