您的位置:首页 > 其它

刷题——Saruman's Army POJ - 3069

2017-08-08 11:05 543 查看
/*

坐标轴上任意点的r距离中要有被标记点

从第一个点开始,从它r距离往回推,遇到点标记,再从被标记点r距离外开始

*/

#include <stdio.h>

#include <string.h>

#include <algorithm>

using namespace std;

int xi[1005];

int main(){

    int n,r;

    while(~scanf("%d %d",&r,&n)){

        if(n==-1&&r==-1)break;

        int x,maxx=0;

        memset(xi,0,sizeof(xi));

        for(int i=0;i<n;i++){

            scanf("%d",&x);

            xi[x]=1;

            maxx=max(maxx,x);

        }

        int num=0;

        for(int i=0;i<=maxx;i++){

            if(xi[i]){

                for(int j=i+r;j>=i;j--){

                    if(xi[j]){

                        i=j+r;

                        break;

                    }

                }

                num++;

            }

        }

        printf("%d\n",num);

    }

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: