POJ 3069 Saruman's Army
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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步