{"code":"convertseq","name":"Chuyển đổi dãy số","description":"Cho mảng $A$ gồm $n$ phần tử và các phần tử được sắp xếp tăng dần từ $1$ đến $n$ (Tức là $A[]=\\left\\{1,2,3,...,n\\right\\}$). Nhiệm vụ của bạn là in ra số **tập lệnh** tối thiểu để chuyển mảng $A$ thành mảng gồm các phần tử được sắp xếp theo thứ tự giảm dần (Tức là, sau khi biến đổi: $A[]=\\left\\{n,n-1,n-2,...,1\\right\\}$)\r\n\r\nMảng $A$ được đánh chỉ số bắt đầu từ $1$.\r\n\r\nMỗi **tập lệnh** có cấu trúc như sau: $(p_1,len,p_2)$. Điều kiện $1$ $\\leq$ $p_1$  ; $1$ $\\leq$ $len \\leq$ $n+1 - p_1$ ; $0$ $\\leq$ $p_2$ $\\leq$ $n$ $-$ $len$\r\n\r\nTa áp dụng các **tập lệnh** đó vào $A$ như sau: Lấy subarray (có nghĩa là mảng con gồm các phần tử liên tiếp) từ vị trí $p_1$ đến $p_1+len-1$, sau đó xóa chúng đi và thêm lại vào phía sau vị trí $p_2$. Nếu $p_2=0$, thì ta hiểu subarray đó được thêm vào phía trước đầu tiên của mảng $A[]$.\r\n\r\nVí dụ: Giả sử ta có mảng $A[]=1,2,3$, áp dụng **tập lệnh** $(1,1,2)$ vào $A$, ta có quá trình biến đổi như sau:\r\n\r\n + Ta tìm được $subarray[]=1$.\r\n\r\n + Xóa đi subarray này, thì mảng $A$ còn lại: $A[]=2,3$\r\n\r\n + Thêm subarray này lại vào vị trí sau vị trí thứ $2$, ta được $A[]=2,3,1$.\r\n\r\nHoặc giả sử ta áp dụng **tập lệnh** $(2,2,0)$. Khi đó $A[]$ sẽ trở thành $A[]=2,3,1$.\r\n\r\n**Yêu cầu:** Cho số nguyên dương $n$. In ra số **tập lệnh** tối thiểu cần dùng, và liệt kê chúng ra. Nếu có nhiều đáp án, in ra bất kì.\r\n#### Input\r\n- Nhập số $n(1\\leq n\\leq 1000)$.\r\n\r\n#### Output \r\n- Dòng thứ nhất chứa số **tập lệnh** tối thiểu cần dùng.\r\n\r\n- In ra các dòng liệt kê số **tập lệnh** trên, mỗi **tập lệnh** một dòng.\r\n\r\n#### Scoring \r\n- Subtask $1$ ($30\\%$ số điểm): $1\\leq n \\leq 100$.\r\n- Subtask $2$ ($70\\%$ số điểm): $101\\leq n \\leq 1000$.\r\n\r\n#### Example\r\n!!! question \"Test 1\"\r\n    ???+ \"Input\"\r\n        ```sample\r\n        3 \r\n        ```\r\n    ???+ success \"Output\"\r\n        ```sample\r\n        2\r\n        1 1 2\r\n        1 1 1\r\n        ```\r\n    ??? warning \"Note\"\r\n\r\n        + Ban đầu: $A[]=1,2,3$\r\n\r\n        + Sau khi áp dụng \"tập lệnh\" thứ nhất, $A$ trở thành: $A[]=2,3,1$\r\n\r\n        + Sau khi áp dụng \"tập lệnh\" thứ hai, $A$ trở thành: $A[]=3,2,1$.","points":600.0,"partial":true,"time_limit":1.0,"memory_limit":262144,"short_circuit":false,"allowed_languages":[3,4,34,36,37,5,6,11,12,14,28,2,38,39,9,18,17,29,23,27,35,25,26,10,7,19,32,1,8,15,16,24,20,33,13,41,21,40],"is_public":true,"is_manually_managed":false,"permissions":{"can_edit":false}}