蓝桥杯 19717 挖矿java

java 复制代码
import java.util.Scanner;

public class Main {
    public static void solve() {
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        int m = sc.nextInt();
        
        int s = 0;
        int[] l = new int[m + 1];
        int[] r = new int[m + 1];
        //初始化,没有矿就是0
        for (int i = 0; i < n; ++i) {
            int x = sc.nextInt();
            if (Math.abs(x) <= m && x < 0) {
                l[-x]++;
            } else if (Math.abs(x) <= m && x > 0) {
                r[x]++;
            } else if (x == 0) {
                s++;
            }
        }
        //计算前缀和
        for (int i = 1; i <= m; ++i) {
            l[i] += l[i - 1];
            r[i] += r[i - 1];
        }
        
        int ans = Math.max(r[m], l[m]);//不调转方向的数量
        for (int i = 1; i <= m / 2; ++i) {
            int sr = r[i] + l[m - i * 2];
            int sl = l[i] + r[m - i * 2];
            ans = Math.max(ans, Math.max(sr, sl));
        }
        
        ans += s;
        System.out.println(ans);
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int t = 1;
        while (t-- > 0) {
            solve();
        }
        
        sc.close();
    }
}
相关推荐
爱跳舞的烤冷面10 分钟前
自学嵌入式第N天(Linux篇——文件编程)
java·开发语言·前端
怪奇云呼军18 分钟前
闪电智能VoiceAgent 如何管理呼入、接听、桥接和挂断状态?
java·前端·网络·数据库·人工智能
Escalating_xu26 分钟前
【Linux】进程间通信:从匿名管道、FIFO 到共享内存、消息队列与信号量
java·linux·面试
没落之王32 分钟前
易学使者郑氏正脉郑冰推演马航事件
大数据·人工智能·算法·机器学习·可用性测试
IT机器猫42 分钟前
RabbitMQ基础二
java·spring boot·分布式·spring cloud·log4j·rabbitmq·springamqp
caimouse1 小时前
ReactOS 图形系统分析(33):字体子系统 — font.c
c语言·开发语言·reactos
阿部多瑞 ABU1 小时前
告别手工核图:基于 .NET + MuPDFCore 的 CAD 等轴测 PDF 材料表提取与新旧版本对比实战
后端·算法·ui·pdf·c#
卷心菜的学习路1 小时前
基于 Spring Cloud Tencent 元数据路由实现个人开发泳道,告别频繁部署
java·spring cloud
郝学胜-神的一滴1 小时前
并查集深度入门:从玄学抽象到 QuickFind & QuickUnion 源码实战
数据结构·c++·python·程序人生·算法·软件开发
比奇堡裤头村1 小时前
统计学习方法——决策树
算法·决策树·学习方法