#include <iostream>
#include <string>
#include <map>
#include <cstdio>
#include <algorithm>
#define FOR(i,n) for(int i=0;i<n;i++)
using namespace std;
int s[100115],x[101105];
int main ()
{
int l,n;
while(cin >> l >> n&&l!=-1&&n!=-1)
{
for(int i=0; i<n; i++)
{
cin >> s[i];
}
sort(s,s+n);
int i=0;
int ans=0;
while(i<n)
{
int k=s[i++];//左边第一个点
while(i<n&&s[i]<=k+l) i++;//找出接下来标记的点P
int p=s[i-1];
while(i<n&&s[i]<=p+l) i++;//找出P能覆盖的最远的点
ans++;
}
cout << ans << endl;
}
return 0;
}
POJ3069(贪心)
最新推荐文章于 2021-06-01 16:23:32 发布