题目描述
由于你是排序大师,你经常被路过的游客刁难,要求用一些奇怪的操作给序列排序。
邻国的排序萌新小 I 慕名前来拜访,留下了一个长度为 n 的排列 a1,a2,⋯,an,并要求你用以下操作将排列升序排序:
定义 ai∼j={ai,ai+1,⋯,aj}。选定 1≤i≤j<k≤l≤n,交换 ai∼j 和 ak∼l,即交换后序列变为:
$$a_{1 \sim i-1},\ a_{k \sim l},\ a_{j+1 \sim k-1},\ a_{i \sim j},\ a_{l+1 \sim n}
$$
由于你是因精益求精而远近闻名的排序大师,你需要给出一个排序方案最小化操作次数。
输入格式
第一行一个整数 n (1≤n≤2000) 表示序列长度。
第二行 n 个整数 a1,a2,⋯,an (1≤ai≤n) 描述排列。
输出格式
第一行一个整数 s 表示你给出的方案的步数。
接下来 s 行,每行四个整数 i,j,k,l 表示一次操作。若有多个方案,输出任意一个即可。
样例
输入:
6
1 4 5 3 2 6
输出:
1
2 3 5 5
解释:
选定 i=2, j=3, k=5, l=5,
原序列:1 4 5 3 2 6
交换后:1 2 3 4 5 6