CF1220F.Gardener Alex
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
园丁 Alex 喜欢种树。树是一个包含 n 个顶点的连通无环图。
今天他决定种一棵有根二叉树。二叉树是指任意一个顶点的儿子不超过两个的树。幸运的是,Alex 拥有一个从 1 到 n 的排列,这是他上次生日时收到的礼物,所以他决定按照这个排列来种树。具体过程如下:他找到排列中的最小元素,并将其作为树的根节点。然后将排列分为两部分:最小元素左边的所有元素和右边的所有元素。左边部分的最小元素作为根的左儿子,右边部分的最小元素作为根的右儿子。之后,对这两部分递归重复上述过程。
现在 Alex 想要种一片森林:对于排列的每一个循环左移,都种一棵树。他想知道,哪一种循环左移能使树的深度最小。不幸的是,种一片森林既困难又耗时,但 Alex 现在就想知道答案。你能帮帮他吗?
对于排列 a1,a2,…,ak,…,an,循环左移 k 位后的排列为 ak+1,ak+2,…,an,a1,a2,…,ak。
输入格式
第一行包含一个整数 n (1⩽n⩽200000),表示排列的长度。
第二行包含 n 个整数 a1,a2,…,an (1⩽ai⩽n),保证所有数字恰好出现一次。
输出格式
输出两个用空格分隔的整数:树的最小可能深度,以及需要左移多少个元素才能达到这个深度。左移的元素个数应为 0 到 n−1 之间的一个数。如果有多组答案,输出任意一组即可。
输入输出样例
输入#1
4 1 2 3 4
输出#1
3 2
说明/提示
下图展示了样例测试中所有可能的树以及它们对应的循环左移次数。

由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?