【曼哈顿距离】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();
    }
相关推荐
dtq042416 分钟前
C语言-结构体详解
c语言·开发语言·学习
梅雅达编程笔记28 分钟前
编程启蒙|Scratch 转 Python 系列第9天:字典/哈希表积木双向对照(AI大模型参数配置表实战)
开发语言·人工智能·python·numpy·pandas
持力行29 分钟前
C++与Java变量声明、定义及内存分配的核心区别
java·开发语言·c++
jinyishu_2 小时前
C++ 继承全解:从基础到高级特性
开发语言·c++
接着奏乐接着舞2 小时前
大模型开发 agent 知识库
java
xuhaoyu_cpp_java3 小时前
SpringBoot学习(四)
java·经验分享·spring boot·笔记·学习
plainGeekDev3 小时前
kapt 替换为 KSP
android·java·kotlin
蜡台3 小时前
通过Gradle脚本声明更改Java变量
android·java·开发语言·python·kotlin·gradle·groovy
小喻同学i4 小时前
std::thread函数参数传递
开发语言·c++
程序员天天困4 小时前
后端视角看 EventBus:发布订阅总线的原理、场景与用法
java·后端