先刷前四题,剩下的有空补。
题意:给出x 轴上的n 个点,问两个点之间的最短距离是多少,有多少个最短距离。
思路:排序后遍历。
代码:
1 #include<stdio.h> 2 #include<algorithm> 3 using namespace std; 4 #define N 200005 5 int w[N]; 6 int main(){ 7 int n; 8 while(~scanf("%d", &n)){ 9 for(int i=0; i<n; i++){ 10 scanf("%d", &w[i]); 11 } 12 sort(w, w+n); 13 int mint=w[1]-w[0], co=1; 14 for(int i=2; i<n; i++){ 15 if(w[i]-w[i-1]<mint){ 16 mint=w[i]-w[i-1]; 17 co=1; 18 } 19 else if(w[i]-w[i-1]==mint) co++; 20 } 21 printf("%d %d\n", mint, co); 22 } 23 return 0; 24 }