#include <iostream>
using namespace std;
#include <cmath>
#include <set>
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int r,n,k;
while(1){
cin >> r >> n;
if (r==-1 && n==-1) break;
set<int> a;
set<int>::iterator it;
for(int j=0;j<n;j++){
cin >> k;
a.insert(k);
}
int t = *a.begin(),s=1;
for(it = a.begin();it!=a.end();it++){
if (abs(*it-t)<=r) continue;
else{
s++;
t = *it;
}
}
cout << s << "\n";
}
}
#include
using namespace std;
#include
#include
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int r,n,k;
while(1){
cin >> r >> n;
if (r==-1 && n==-1) break;
set a;
set::iterator it;
for(int j=0;j<n;j++){
cin >> k;
a.insert(k);
}
int t = *a.begin(),s=1;
for(it = a.begin();it!=a.end();it++){
if (abs(*it-t)<=r) continue;
else{
s++;
t = *it;
}
}
cout << s << "\n";
}
}
我猜是因為你只有判斷石頭之前的士兵,忽略石頭後的士兵也在半徑內。
例如測資是
2 3
2 4 6
輸出應該是1(石頭在4的位置)