题意:要在m个数里面选n个数, 要求这n个数的差值要最小
题意在hint里很清晰了
这道题从题意到题目本身都没有什么trick
写这道题完全是为了用一下#include <numeric>里面的两个小朋友:
adjacent_difference 求相邻数的差
&&
accumulate 求和
p.s.边界要注意,都是左闭右开
1 int a[55], b[55], c[55]; 2 int main() 3 { 4 int n, m; 5 while(~scanf("%d%d", &n, &m)) 6 { 7 for(int i=0;i<m;i++) 8 scanf("%d", &a[i]); 9 sort(a, a+m); 10 adjacent_difference(a, a+m, b); 11 int d=0; 12 for(int i=1;i<=m-n+1;i++) 13 c[d++]=accumulate(b+i, b+i+n-1, 0); 14 sort(c, c+d); 15 printf("%d ", c[0]); 16 } 17 return 0; 18 }