求助#12,#16,#18,#21,#22
查看原帖
求助#12,#16,#18,#21,#22
776799
GODTREE楼主2023/3/13 13:16
#include <bits/stdc++.h>
using namespace std;
#define int  long long
signed main()
{
	int T;
	cin>>T;
	while(T--)
	{
		int n,a,b;
		cin>>n>>a>>b;
		int p[n+1];
		for (int i=1;i<=n;i++)
		{
			p[i]=i;
		}
		int x=a-(n/2)*(n/2+1)/2;
		int j1=n,j2=1;
		while (x-(j1-j2)>0)
		{
			if (j2>n/2)
			{
				cout<<-1<<endl;
				break;
			}
			p[j2]=j1;
			p[j1]=j2;
			x-=j1-j2;
			j1--;
			j2++;
			
		}
		if (j2>n/2)
		{
			continue;
		}
		if(x>0)
		{
		    int r=(j1-j2)-(x-j1+j2);
		    if(r<n/2)
		    {
			    p[j1]=r;
		        p[r]=j1;
		        
		    }
		    else 
		    {
		        p[j2]=j1;
    			p[j1]=j2;
		    }
		}
		int sum=0;
		for (int i=n/2+1;i<=n;i++)
		{
			sum+=p[i];
		}
		if(sum<b)
		{
			cout<<-1<<endl;
			continue;
		}
		else
		{
			for (int i=1;i<=n;i++)
			{
				cout<<p[i]<<" ";
			}
		}
		cout<<endl;
	}
	return 0;
 } 
2023/3/13 13:16
加载中...