【曼哈顿距离】BISHI25 最大 FST 距离

求解代码

java 复制代码
public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StreamTokenizer in = new StreamTokenizer(br);

        PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));

        in.nextToken();
        int n = (int) in.nval;

        long[] a = new long[n];

        for (int i = 0; i < n; i++) {
            in.nextToken();
            a[i] = (long) in.nval;
        }

        long maxU = Long.MIN_VALUE;
        long minU = Long.MAX_VALUE;
        long maxV = Long.MIN_VALUE;
        long minV = Long.MAX_VALUE;

        for (long i = 0; i < n; i++) {
            // 计算当前位置的索引(从1开始,而非0)
            long idx = i + 1;
            long val = a[(int) i];

            // 计算u值:位置索引的平方 + 数值的平方
            long u = idx * idx + val * val;
            // 计算v值:位置索引的平方 - 数值的平方
            long v = idx * idx - val * val;

            maxU = Math.max(maxU, u);
            minU = Math.min(minU, u);

            maxV = Math.max(maxV, v);
            minV = Math.min(minV, v);

        }
        long dist = Math.max(maxU - minU, maxV - minV);
        
        out.println(dist);

        out.flush();
        out.close();
        br.close();
    }
相关推荐
条tiao条4 分钟前
KMP 算法详解:告别暴力匹配,让字符串匹配 “永不回头”
开发语言·算法
干啥啥不行,秃头第一名10 分钟前
C++20概念(Concepts)入门指南
开发语言·c++·算法
森林猿18 分钟前
java-modbus-读取-modbus4j
java·网络·python
tobias.b22 分钟前
计算机基础知识-数据结构
java·数据结构·考研
2301_8073671937 分钟前
C++中的解释器模式变体
开发语言·c++·算法
reembarkation37 分钟前
光标在a-select,鼠标已经移出,下拉框跟随页面滚动
java·数据库·sql
愣头不青1 小时前
617.合并二叉树
java·算法
always_TT1 小时前
C语言中的字符与字符串(char数组)
c语言·开发语言
forAllforMe1 小时前
LAN9252 从机寄存器配置--C语言举例
c语言·开发语言
weixin_537590452 小时前
《C程序设计语言》练习答案(练习1-4)
c语言·开发语言