链接:
http://acm.buaa.edu.cn/problem/1120/
贪心规则:每次都打离自己最近的那个,就酱
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n, k, d;
int x[1001] = { 0 };
int main()
{
while (~scanf("%d %d %d", &n, &k, &d))
{
for (int i = 0; i < n; i++)
scanf("%d", &x[i]);
int bullet = 0;
sort(x, x + n);
for (int i = 0; i < n; i++)
{
if (!x[i]) continue;
else
{
int aim = x[i];
x[i] = 0;
bullet++;
for (int j = i + 1; j < n; j++)
{
if (x[j] && ((x[j] - aim) / d) <= k - 1 && (x[j] - aim) % d == 0)
x[j] = 0;
else if ((x[j] - aim) / d > k - 1)
break;
}
}
}
printf("%d\n", bullet);
}
return 0;
}