Một inode kiểu Unix có:
D con trỏ trực tiếp (direct), mỗi con trỏ trỏ tới 1 block dữ liệu.K con trỏ tới block dữ liệu (K = số con trỏ vừa trong một block).K con trỏ tới các block chỉ mục cấp 2, mỗi block cấp 2 chứa K con trỏ tới block dữ liệu.Cho chỉ số block logic b (đánh số từ 0) của một file, hãy xác định block đó được truy cập qua loại con trỏ nào:
b < D: in DIRECT.D ≤ b < D + K: in SINGLE.D + K ≤ b < D + K + K·K: in DOUBLE.OUT_OF_RANGE.Cho Q truy vấn, mỗi truy vấn một giá trị b. In Q dòng kết quả.
Ví dụ: D=12, K=256. b=5 -> DIRECT. b=12 -> SINGLE (12 ≤ b < 268). b=300 -> DOUBLE. b=99999 -> nếu vượt 12+256+65536=65804 thì OUT_OF_RANGE.
Dòng đầu: D K (số con trỏ trực tiếp, số con trỏ trong một block chỉ mục). Dòng tiếp: Q (số truy vấn). Tiếp theo Q số là các chỉ số block logic b.
1 ≤ D ≤ 100; 1 ≤ K ≤ 100000; 1 ≤ Q ≤ 100000; 0 ≤ b ≤ 10^18.
Q dòng, mỗi dòng một trong: DIRECT, SINGLE, DOUBLE, OUT_OF_RANGE.
Ví dụ:
Đầu vào:
12 256 4
5 12 300 99999
Đầu ra:
DIRECT
SINGLE
DOUBLE
OUT_OF_RANGE
Giải thích:
Đang tải editor...