2208E 渡荆门送别

· · 题解

Source & Knowledge

2022年8月语言月赛,由洛谷网校入门计划/基础计划提供。

由 皎月半撒花 命题。

考察数组。

文字题解

题意简述

\max a_i - a_i, a_i-\min a_i

问题分析

关键在于求出 \max a_i\min a_i,我们可以采用打擂台的方法,即使用变量,记录最大值和最小值,依次考虑 a_i,将其与当前的最大值与最小值比较。

注意到本题的数据范围为 10^{18},需要使用 long long 类型。最小值的初值应当大于 10^{18},最大值的初值应当小于 1

long long maxm = 0, minm = 1000000000000000001ll;
for(int i = 1; i <= n; i++) {
    maxm = max(maxm, a[i]);
    minm = min(minm, a[i]);
}

使用上述代码即可求出 \max a_i\min a_i

再循环输出题目所求即可。

视频题解