分析:这个模拟写的不好,,但终于过了。
#include<bits/stdc++.h>
#define maxn 100010
using namespace std;
int main(){
std::ios::sync_with_stdio(false);
int n,k;
cin>>n>>k;
int ans=2*k+1;
int tmp=n%ans;
if(k==0){
cout<<n<<endl;
for(int i=1;i<=n;i++)
cout<<i<<" ";
cout<<endl;
}
else{
if(ans>=n){
cout<<"1"<<endl;
cout<<n/2+1<<endl;
}
else{
if(tmp==0){
int t=n/ans;
cout<<t<<endl;
int cur=k+1;
for(int i=1;i<=t;i++){
cout<<cur+(i-1)*(2*k+1)<<" ";
}
cout<<endl;
}
else if(tmp>=k+1&&tmp<=2*k){
int t=n/ans;
cout<<t+1<<endl;
int cur=k+1;
for(int i=1;i<=t;i++){
cout<<cur+(i-1)*(2*k+1)<<" ";
}
//cout<<endl<<"ans="<<ans<<" t="<<t<<endl;
cout<<t*ans+k+1<<endl;
}
else {
tmp+=k;
int sum=n-k-1-tmp;
int t=sum/ans;
cout<<2+t<<endl;
cout<<"1"<<" ";
int cur=2*k+2;
for(int i=1;i<=t;i++){
cout<<cur+(i-1)*(2*k+1)<<" ";
}
cout<<n-tmp+k+1<<endl;
}
}
}
return 0;
}