小月的前缀
题号:NC310863
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}本题与《A.小月的前缀(构造version)》共享部分题目背景,这一部分我们使用特殊的格式标注。
〖引用开始〗
\hspace{15pt}给定一个长度为 n 的整数数组 A = \{a_1,a_2,\dots,a_n\},记其偏移量为 r 的向左循环移位后得到的数组为 A_r = \{a_{r,1},a_{r,2},\dots,a_{r,n}\}。该次旋转的得分定义为数组 A_r 中,前缀和严格大于 0 的前缀数量:

\displaystyle {\rm score}(A_r) = \left\lvert\left\{\, i ~\Big|~ 1\leqq i\leqq n,\ \sum\limits_{j=1}^{i} a_{r,j}>0\right\}\right\rvert

〖引用结束〗
\hspace{15pt}请你找到使得得分最大的 r(若有多个,输出最小的 r ),并同时输出该 r 与最大得分。

【名词解释】
\hspace{15pt}偏移量为 r 的向左循环移位:即将数组前 r 个元素按原顺序移动到数组末尾,剩余元素整体向前移动。例如,记原数组 \{a_1,a_2,\dots,a_n\},当偏移量为 1 时,得到 \{a_2,a_3,\dots,a_n,{\color{orange}{a_1}}\}

输入描述:

\hspace{15pt}第一行输入一个整数 n \left(1\leq n\leq 2\times 10^5\right),表示数组的大小。
\hspace{15pt}第二行输入 n 个整数 a_1,a_2,\dots,a_n \left(-10^9 \leq a_i \leq 10^9\right),表示数组中的元素。

输出描述:

\hspace{15pt}在一行上输出两个整数,表示你找到的使得得分最大的左旋次数与最大得分。
示例1

输入

复制
6
2 2 2 2 2 -100

输出

复制
0 5

说明

\hspace{15pt}在这个样例中:
\hspace{23pt}\bullet\,当偏移量为 0 时,数组保持不变,此时的前缀和依次为 2,4,6,8,10,-90,严格大于 0 的前缀有 5 个;
\hspace{23pt}\bullet\,当偏移量为 1 时,数组变为 \{2,2,2,2,-100,{\color{orange}{2}}\},此时的前缀和依次为 2,4,6,8,-92,-90,严格大于 0 的前缀有 4 个;
\hspace{23pt}\bullet\,当偏移量为 2 时,数组变为 \{2,2,2,-100,{\color{orange}{2}},{\color{orange}{2}}\},此时的前缀和依次为 2,4,6,-94,-92,-90,严格大于 0 的前缀有 3 个;
\hspace{23pt}\bullet\,当偏移量为 3 时,严格大于 0 的前缀有 2 个;
\hspace{23pt}\bullet\,当偏移量为 4 时,严格大于 0 的前缀有 1 个;
\hspace{23pt}\bullet\,当偏移量为 5 时,严格大于 0 的前缀有 0 个;
\hspace{23pt}\bullet\,当偏移量为 6 时,严格大于 0 的前缀有 5 个;
\hspace{23pt}\bullet\,……
\hspace{15pt}我们可以证明,5 是所有可能数组中最大的得分,取最小的 r0
示例2

输入

复制
5
1 -2 3 -1 2

输出

复制
2 5