zoukankan      html  css  js  c++  java
  • CF1038D Slime 构造

    题目大意:

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

    输入格式:

    第一行一个整数nnn

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

    输出格式:

    一个整数,即最大分数

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

    Code:

    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    long long minv = 1000000000000;
    long long sumv = 0;
    int positive, negative;
    int main()
    {
        int n; scanf("%d",&n);
        if(n == 1){ long long a; scanf("%lld",&a); printf("%lld",a); return 0;}
        for(int i = 1;i <= n; ++i)
        {
            long long  a; scanf("%lld",&a);
            if(a > 0) ++positive;
            if(a < 0) ++negative;
            sumv += abs(a);
            minv = min(minv, abs(a));
        }
        if(positive && negative) printf("%lld",sumv);
        else printf("%lld",sumv - 2 *minv);
        return 0;
    }
    

      

  • 相关阅读:
    tomcat安装配置
    Java的jdk环境变量配置
    我为什么在这里写博客
    函数
    java的内部类解析
    常用集合
    java数据类型总结
    Java总结基础知识
    线程的状态和方法
    java对象序列化的理解
  • 原文地址:https://www.cnblogs.com/guangheli/p/9845108.html
Copyright © 2011-2022 走看看