AcWing 100. 【Java】IncDec序列
原题链接
中等
作者:
tt2767
,
2019-12-15 00:59:01
,
所有人可见
,
阅读 806
//差分后 2~last 都为0时,整个数组相同,与首位无关
//|pos-neg| 次因为可选影响 b[1] 或 b[n+1] , 而选改变b[n+1]对原数组无影响
// 所以 b[1] 可能被改变0次,1次,…… ,|pos-neg|次,得到 |pos-neg| + 1 个不同结果
import java.util.*;
public class Main{
void run(){
int n = jin.nextInt();
long[] a = new long[n+2];
for (int i = 1; i <= n ; i++) a[i] = jin.nextLong();
solve(n, a);
}
void solve(int n, long[] a){
for (int i = n ; i >= 1 ; i--) a[i] = a[i] - a[i-1];
// for (int i = 1; i <= n ; i++) System.out.printf("%d ", a[i]);
// System.out.println();
long pos = 0;
long neg = 0;
for (int i = 2 ; i <= n ; i++){
if (a[i] > 0) pos += a[i];
else if (a[i] < 0) neg -= a[i];
}
System.out.println(Math.max(pos, neg));
System.out.println(Math.abs(pos - neg) + 1);
}
private Scanner jin = new Scanner(System.in);
public static void main(String[] args) throws Exception {new Main().run();}
}