记录编号 605699 评测结果 AAAAAAAAAAAAAAAAAA
题目名称 4170.[USACO25 Open Silver]Sequence Construction 最终得分 100
用户昵称 Gravatar李奇文 是否通过 通过
代码语言 C++ 运行时间 0.161 s
提交时间 2025-09-06 15:58:09 内存使用 3.70 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int t;
int m,k;
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	cin>>t;
	vector<int> v;
	while(t--){
		cin>>m>>k;
		bool iso=false;
		int sum=0;
		v.clear();
		for(int i=5;i>=1;i--){
			int r=(1<<i);
			if(k>=r){
				k-=r;
				v.push_back((1<<r)-1);                 
				sum+=(1<<r)-1;
			}
		}
		if(k){
			iso=true;
			v.push_back(1);
			sum++;
		}
		if(sum>m){
			cout<<(-1)<<"\n";
			continue;
		}
		m-=sum;
		if(m==1){
			if(iso){
				v.pop_back();
				v.push_back(2);
			}else{
				cout<<-1<<"\n";
				continue;
			}
		}else if(m!=0){
			if(!(m&1)){
				v.push_back(m>>1);
				v.push_back(m>>1);
			}else{
				v.push_back(1);
				v.push_back(2);
				if(m>=4){
					v.push_back((m-3)>>1);
					v.push_back((m-3)>>1);
				}
			}
		}
		cout<<v.size()<<"\n";
		for(int i:v){
			cout<<i<<" ";
		}
		cout<<"\n";
	}
	return 0;
}