Loại mã chết (dead code elimination): một phép gán là chết nếu biến nó định nghĩa không bao giờ được dùng sau đó (và bản thân lệnh không có tác dụng phụ).
Mỗi lệnh: def | use.... Lệnh có def = - được coi là có tác dụng phụ (ví dụ print) và luôn được giữ.
Duyệt ngược, giữ tập biến live. Giữ lệnh nếu def = - hoặc def đang live. Khi giữ: bỏ def khỏi live rồi thêm mọi use. Lệnh không giữ bị loại (kể cả use của nó không lan truyền).
In số lệnh còn lại sau khi loại mã chết.
Dòng đầu n. n dòng: def | use....
1 ≤ n ≤ 10^4.
Một số nguyên: số lệnh còn sống.
Ví dụ:
Đầu vào:
3
a |
b | c
- | b
Đầu ra:
2
Giải thích:
Đang tải editor...