Chúng tôi lấy chuỗi các số nguyên từ đến và chúng tôi đẩy chúng lên từng ngăn một theo thứ tự. Giữa mỗi lần đẩy, chúng ta có thể chọn bật bất kỳ số lượng vật phẩm nào từ ngăn xếp (từ 0 đến kích thước ngăn xếp hiện tại).
Mỗi khi chúng tôi bật một giá trị từ ngăn xếp, chúng tôi sẽ in nó ra.
Ví dụ, được in ra khi chúng tôi làm . đến từ .push, pop, push, pop, push, pop
push, push, push, pop, pop, pop
Tuy nhiên, không phải là bản in có thể, bởi vì không thể có bản in theo sau là , mà không nhìn thấy ở giữa.
Câu hỏi: Làm thế nào chúng ta có thể phát hiện các đơn đặt hàng không thể như ?
Trong thực tế, dựa trên quan sát của tôi, tôi đã đưa ra một giải pháp tiềm năng. Nhưng vấn đề là tôi không thể chứng minh sự quan sát của mình đã hoàn tất.
Chương trình mà tôi đã viết với logic sau:
Khi giá trị hiện tại trừ đi giá trị tiếp theo lớn hơn 1, giá trị giữa hiện tại và tiếp theo không thể xuất hiện sau giá trị tiếp theo. Ví dụ: nếu current = 3 và next = 1, thì giá trị giữa hiện tại (3) và tiếp theo (1) là 2 không thể xuất hiện sau tiếp theo (1), do đó vi phạm quy tắc.
Điều này bao gồm tất cả các trường hợp?