Sort the Array
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
在你生日的时候,你的朋友送了你一个数列 a ,由 n 个不同的整数组成.
那么问题来了,你是否可以通过翻转数列中的一段使得数列从小到大排列?
Input
第一行包含一个整数 n (1 ≤ n ≤ 10^5) — 表示数列的长度。 a.
第二行包含 n 个不同的整数: a[1], a[2], ..., a[n] (1 ≤ a[i] ≤ 10^9).
Output
第一行输出 "yes" 或 "no" (without quotes)。
如果你的答案是 "yes",那么在第二行中输出从小到大的两个整数表示需要翻转的区间。如果有多种方案,输出任意一个。
Samples
3
3 2 1
yes
1 3
4
2 1 3 4
yes
1 2
4
3 1 2 4
no
2
1 2
yes
1 1
Note
在 a 中的一段区间 [l, r] 可以表示为 a[l], a[l + 1], ..., a[r].
如果你有一个数列 a 大小为 n 并且你翻转了区间 [l, r],这个数列会变成:
a[1], a[2], ..., a[l - 2], a[l - 1], a[r], a[r - 1], ..., a[l + 1], a[l], a[r + 1], a[r + 2], ..., a[n - 1], a[n].