记录编号 605673 评测结果 AAAAAAAAAAAAAAAAAA
题目名称 4170.[USACO25 Open Silver]Sequence Construction 最终得分 100
用户昵称 Gravatar汐汐很希希 是否通过 通过
代码语言 C++ 运行时间 0.480 s
提交时间 2025-09-06 14:40:27 内存使用 3.69 MiB
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=110;
int T,ans[N];
int main()
{
    freopen("Sequence.in","r",stdin);
    freopen("Sequence.out","w",stdout);
    
    cin>>T;
    while(T)
    {
        T--;
        int m,k;
        bool flag=false;
        cin>>m>>k;
        memset(ans,0,sizeof(ans));
        int v=0,a=0;
        for(int i=5;i>=1;i--){
			int p=(1<<i);
			if(k>=p){
				k-=p;
				ans[++a]=(1<<p)-1;
				v+=(1<<p)-1;
			}
		}
		if(k){
		    flag=true;
		    ans[++a]=1;
		    v++;
        }
		v=m-v;
		if(v<0){
		    cout<<-1<<endl;
		    continue;
        }else if(v==1){
            if(flag){
                ans[a]=2;
                v--;
            }else{
                cout<<-1<<endl;
                continue;
            }
        }else if(v%2==1){
            ans[++a]=1;
            ans[++a]=2;
            v-=3;
        }
        if(v){
            ans[++a]=v/2;
            ans[++a]=v/2;
        }
        cout<<a<<endl;
        for(int i=1;i<=a;i++) cout<<ans[i]<<' ';
        cout<<endl;
    }
    return 0;
}