1 solutions
-
2
思路: 第一问是让所有差分数组都归零,而每次对区 间进行操作实际上是让两端差分数组一个+1,一 个-1,所以只要算出所有正数之和和所有负数绝对 值的最大值即可。 第二问是求所有差分数组归零有几种方法,根 据第一问我们可知实际上就是求所有正数之和和所有 负数绝对值的差。
#include<iostream> using namespace std; long long n,a[2],cha,z,f; int main(){ cin>>n>>a[1]; n--; while(n--){ cin>>a[n%2]; cha=a[n%2]-a[(n+1)%2]; if(cha>0)z+=cha; else if(cha<0) f+=abs(cha); } cout<<max(z,f)<<endl<<abs(f-z)+1; return 0; }
- 1
Information
- ID
- 1069
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 7
- Tags
- # Submissions
- 48
- Accepted
- 10
- Uploaded By