当前位置: 代码迷 >> 综合 >> Codeforces Round #507 (Div. 2) B - Shashlik Cooking(模拟)
  详细解决方案

Codeforces Round #507 (Div. 2) B - Shashlik Cooking(模拟)

热度:15   发布时间:2023-11-08 15:31:05.0

分析:这个模拟写的不好,,但终于过了。

#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;
}
  相关解决方案