蓝桥杯备考冲刺必刷题(C ) | 3412 最小化战斗力差距

蓝桥杯备考冲刺必刷题(C ) | 3412 最小化战斗力差距

首页动作格斗机甲战队更新时间:2024-07-04

学习C 从娃娃抓起!记录下蓝桥杯备考比赛学习过程中的题目,记录每一个瞬间。

附上汇总贴:


【题目描述】

小蓝是机甲战队的队长,他手下共有$$n$$名队员,每名队员都有一个战斗力值$$w_i$$。现在他需要将这$$n$$名队友分成两组$$a$$和$$b$$,分组必须满足以下条件:

战斗力差距的计算公式为$$|max(a)-min(b)|$$ , 其其中$$max(a)$$表示$$a$$组中战斗力最大的, $$min(b)$$表示$$b$$组中战斗力最小的。

请你计算出可以得到的最小战斗力差距。

【输入】

第一行一个整数$$n$$,表示队员个数。

第二行$$n$$个整数$$w_1,w_2,w_3\dots w_n$$,分别表示每名队友的战斗力值。

数据范围保证:$$2\le n\le 10^5,1\le w_i\le 10^9$$。

【输出】

输出一个整数,表示可以得到的最小战斗力差距。

【输入样例】

3 1 2 3

【输出样例】

1

【代码详解】

#include <bits/stdc .h> using namespace std; int n, minn=1e9; int a[100005]; int main() { cin >> n; // 输入n for (int i=1; i<=n; i ) { // 输入所有战斗力值 cin >> a[i]; } sort(a 1, a n 1); // 按照从小到大排序 for (int i=2; i<n; i ) { // 遍历a数组 minn = min(minn, abs(a[i]-a[i-1])); // 比较a[i]与a[i-1]、a[i 1]的差值的绝对值的最小值 minn = min(minn, abs(a[i]-a[i 1])); } cout << minn << endl; // 输出最小战斗力差距 return 0; }

【运行结果】

3 1 2 3 1

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved