C++题解(31) 2025顺德一中少科院信息学创新班(四期)考核:U537296 青蛙的距离 题解
(本人参与了这次考核)
题目背景
有n个池塘,每个池塘中有m只青蛙。这里的青蛙很奇怪,同一个池塘的青蛙喜欢排成一列,并且他们的位置都是有序的。 对于第i列的青蛙,他们分别在第a[i]个位置。 青蛙的距离定义为:从两个不同池塘中选择两只青蛙,他们的位置分别是x、y,那么他们的距离可以定义为位置的绝对值|x-y|。 请范围最大的青蛙距离。
题目描述
无
输入格式
第一行为一个正整数,表示n个池塘。
接下来有n*2行,每两行为一个池塘的情况。
一行是该池塘有m只青蛙,下一行是该池塘中m只青蛙的位置。
输出格式
一个正整数,表示青蛙的最大距离。
输入输出样例
输入 #1
3 3 1 2 3 2 4 5 3 1 2 3
输出 #1
4
说明/提示
样例1解析: 从第一个池塘求去第一只青蛙的位置,第二个池塘中取最后一只青蛙的位置。|1-5| = 4为最大的距离。
数据范围: 2 <= n <= 1e5
1 <= m <= 500
-1e4 <= a[i] <= 1e4
a[i] 都是升序
所有数组的数加起来不超过1e5
参考答案
#include <iostream> #include <math.h> #include <string.h> using namespace std; int main() { int max=-100,min=10000,t,n,a; cin>>t; while(t--) { cin>>n; for(int i=1;i<=n;i++) { cin>>a; if(a<min)min=a; if(a>max)max=a; } } cout<<max-min; return 0; }