1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<queue> 5 #include<map> 6 #include<vector> 7 #include<set> 8 #include<string> 9 #include<cmath> 10 #include<cstring> 11 using namespace std; 12 int main() 13 { 14 int r,n; 15 while(scanf("%d%d",&r,&n)!=EOF&&r!=-1) 16 { 17 int a[1010]; 18 for(int i=0;i<n;i++) 19 scanf("%d",&a[i]); 20 sort(a,a+n); 21 int i=0,ans=0; 22 while(i<n) 23 { 24 //s未被覆盖最左边的点的位置 25 int s=a[i++]; 26 //一直向右前进直到距s的距离大于R的点 27 while(i<n&&a[i]<=s+r) 28 i++; 29 //p是新加上标记的位置 30 int p=a[i-1]; 31 //一直向右前进直到距离p的距离大于R的点 32 while(i<n&&a[i]<=p+r) 33 i++; 34 ans++; 35 } 36 printf("%d\n",ans); 37 } 38 return 0; 39 }