• 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;
    }
    

      

  • 相关阅读:
    函数作业1
    函数、装饰器、迭代器、内置方法总练习题
    疑问
    装饰器
    文件练习题1,2
    内置函数练习题和总结
    GET和POST请求的区别
    HTTP请求方法
    HTTP之状态码
    HTTP之响应消息Response
  • 原文地址:https://www.cnblogs.com/guangheli/p/9845108.html
Copyright © 2020-2023  润新知