当前位置:   article > 正文

CF1038D Slime 构造

CF1038D Slime 构造

题目大意:

n只史莱姆qwq,每只史莱姆有一个分数,每次一只史莱姆可以吞掉左边的或者右边的史莱姆(要是有的话),然后ta的分数会减去被吞的史莱姆的分数,问最后剩下的史莱姆分数最大为多少

输入格式:

第一行一个整数n

第二行n个整数,表示史莱姆的分数

输出格式:

一个整数,即最大分数

对于这道题来说,我们发现如果序列中有正有负,答案就是所有数的绝对值之和。 否则,答案就是绝对值之和减去绝对值中的最小值的 2 倍。

Code:

  1. #include<cstdio>
  2. #include<cmath>
  3. #include<algorithm>
  4. using namespace std;
  5. long long minv = 1000000000000;
  6. long long sumv = 0;
  7. int positive, negative;
  8. int main()
  9. {
  10. int n; scanf("%d",&n);
  11. if(n == 1){ long long a; scanf("%lld",&a); printf("%lld",a); return 0;}
  12. for(int i = 1;i <= n; ++i)
  13. {
  14. long long a; scanf("%lld",&a);
  15. if(a > 0) ++positive;
  16. if(a < 0) ++negative;
  17. sumv += abs(a);
  18. minv = min(minv, abs(a));
  19. }
  20. if(positive && negative) printf("%lld",sumv);
  21. else printf("%lld",sumv - 2 *minv);
  22. return 0;
  23. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/1015915
推荐阅读
相关标签
  

闽ICP备14008679号