Codeforces Round #644 (Div. 3) 参赛人数20688
[codeforces 1360B] Honest Coach 排序+找相邻差值最小的两个数
总目录详见https://blog.csdn.net/mrcrack/article/details/103564004
在线测评地址http://codeforces.com/contest/1360/problem/B
Problem | Lang | Verdict | Time | Memory |
---|---|---|---|---|
B - Honest Coach | GNU C++17 | Accepted | 31 ms | 200 KB |
样例模拟如下
5
3 1 2 6 4
排序
1 2 3 4 6
找相邻差值最小的两个数(1,2),(2,3),(3,4)均可
如找(1,2)可作如下分组
[2],[1,3,4,6]
6
2 1 3 2 4 3
排序
1 2 2 3 3 4
找相邻差值最小的两个数(2,2),(3,3)均可
如找(2,2)可作如下分组
[1,2],[2,3,3,4]
4
7 9 3 1
排序
1 3 7 9
找相邻差值最小的两个数(1,3),(7,9)均可
如找(1,3)可作如下分组
[3],[1,7,9]
2
1 1000
排序
1 1000
找相邻差值最小的两个数(1,1000)均可
如找(1,1000)可作如下分组
[1],[1000]
3
100 150 200
排序
100 150 200
找相邻差值最小的两个数(100,150),(150,200)均可
如找(100,150)可作如下分组
[150],[100,200]
AC代码如下
#include <cstdio>
#include <algorithm>
using namespace std;
int a[60];
int main(){
int t,n,i,delta;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
for(i=1;i<=n;i++)scanf("%d",&a[i]);
sort(a+1,a+1+n);//自小到大排序
delta=1010;//delta找相邻最小间距
for(i=2;i<=n;i++)delta=min(a[i]-a[i-1],delta);
printf("%d\n",delta);
}
return 0;
}