75求调
查看原帖
75求调
1409266
Enton16楼主2024/10/22 21:31
#include<bits/stdc++.h>
using namespace std;
int main()
{
	
long long n,a,b,d,z;
long long final=0;
long long s[24];
s[0]=200;
for(int u=1;u<=23;u++) s[u]=0;
int f=0;
int g=0;
cin>>n;
if(n%2!=0) cout<<"-1";
else
{
	
//for start 
for(int i=1;i<=23;i++)
{
    a=pow(2,i);
    if(n==a)
    {
        cout<<"-1";
        f=1;
        break;
    }    
    else
    {
        
    }
}

//for end

if(f==1) return 0;
//else in else
else
{
	
for(int c=1;c<=23;c++)
{
	b=pow(2,c);
	d=pow(2,c+1);
	if(n%2!=0) 
	{
		g=1;
		break;
	}
	  if(b==n)
	   {
	   	s[c]=b;
		n-=s[c];
		c=1;
	   } 
	   if(2==n)
	   { 
	   s[1]=2;
	   n=0;
	   }
   if(b<n&&d>n)
   {
   	s[c]=b;
   	n-=s[c];
   	c=1;
   }
 
}

if(g==1) cout<<"-1";
//else in else in else
else
{
	for(int t=1;t<=23;t++)
	{
		for(int y=1;y<=t;y++)
		{
			if(s[y]>s[t]) swap(s[y],s[t]);
		}
	}
	for(int w=1;w<=23;w++)
	{
		if(s[w]==0&&s[w+1]!=0) final=w+1;
	}
	for(int j=23;j>=1;j--)
	{
		if(j==final)
		{
			cout<<s[j];
			break;
		}
		else cout<<s[j]<<" ";
	}
}
//Separation 2
} 

//Separation 1
}

}
2024/10/22 21:31
加载中...