10. 增减序列 Wrong Answer 0分

题目描述
时间:1s 空间:256M

题目描述:

给定一个长度为
𝑛
n的数列
𝑎
1
,
𝑎
2
,
.
.
.
,
𝑎
𝑛
a
1

,a
2

,…,a
n

每次可以选择一个区间
[
𝑙
,
𝑟
]
[l,r]使这个区间内的数都加1或者都减1。

请问至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列有多少种。

输入格式:

第一行一个正整数
𝑛
n
接下来
𝑛
n 行,每行一个整数,第
𝑖
+
1
i+1行的整数表示
𝑎
𝑖
a
i

​。

输出格式:

第一行输出最少操作次数
第二行输出最终能得到多少种结果

样例输入1:

4
1
1
2
2
样例输出1:

1
2
#include<bits/stdc++.h>
using namespace std;
int a,n,x,y;
bool z;
int main(){
cin>>n;
while(n–){
cin>>a;
if(a>=0){
if(!z){
x++;
}
z=1;
}else{
if(z){
y++;
}
z=0;
}
}
cout<<max(x,y)<<“\n”<<abs(x-y)+1;
return 0;
}