题解 | 灵异背包?

求解代码

java 复制代码
public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));

        int n = Integer.parseInt(br.readLine());
        String[] str = br.readLine().split("\\s+");

        long sum = 0;
        int minOdd = Integer.MAX_VALUE;

        for (String s : str){
            int num = Integer.parseInt(s);

            sum += num;

            if((num&1)==1){
                minOdd=Math.min(num, minOdd);
            }
        }

        long res;

        if((sum&1)==0){
            res = sum;
        }else{
            if(minOdd!=Integer.MAX_VALUE){
                res = sum - minOdd;// 总和是奇数,需要减去最小的奇数(若存在)
            }else{
                res = 0;// 没有奇数,只能选空背包
            }
        }
        out.println(res);
        out.flush();
        out.close();
        br.close();

    }
相关推荐
charlie1145141911 小时前
Cinux: 为大内核铺路
开发语言·c++·操作系统·现代c++
2501_914245931 小时前
C语言设计模式详解:从理论到实践的完整指南
c语言·开发语言·设计模式
Hazenix1 小时前
Go 指南:一篇文章速通 Golang
开发语言·后端·golang
灯澜忆梦1 小时前
GO_复合类型---指针
开发语言·后端·golang
Ulyanov1 小时前
雷达导引头Python仿真框架:GPU加速、6-DOF模型与半实物仿真接口
开发语言·python·雷达信号处理·雷达导引头
wuqingshun3141592 小时前
MYSQL的乐观锁和悲观锁是什么?
java
唐青枫2 小时前
Java SLF4J 实战指南:从日志门面到 Logback、MDC 和链路追踪
java
名字还没想好☜3 小时前
Go slice 的 append 陷阱:共享底层数组导致的数据串改
开发语言·后端·golang·go·slice
爱笑鱼3 小时前
JNI(二):Java 里的一个 long,为什么能找到 C++ 对象?
android
bitbrowser3 小时前
Claude 账号频繁被封?转向国内可直接使用的 AI 工具
开发语言·php