50分求调
查看原帖
50分求调
1121338
Shao_Guang楼主2025/7/22 11:32
#include <bits/stdc++.h>
using namespace std;
string e;
int main()
{
	int n;
	cin>> n;
	for(int i = 0;i < n;i++)
	{
		int a = 0;
		cin>> a;
		int b[a];
		int d[a];
		map<int,int> bb;
		map<int,int> dd;
		for(int j = 0;j < a;j++)
		{
			cin>> b[j];
			bb[b[j]] = 1 + j;
		}
		sort(b,b+a);
		for(int j = 0;j < a;j++)
		{
			cin>> d[j];
			dd[d[j]] = 1 + j;
		}
		sort(d,d+a);
		int e = 0;
		int f = 0;
		int g = a;
		while(a)
		{
			a--;
			if(b[a] + f < d[a])
			{
				e = 1;
				break;
			}
			else
			{
				f += b[a] - d[a];
			}
		}
		a = g;
		if(e)
		{
		    cout<< "No" <<endl;
			continue;
		}
		cout<< "Yes" <<endl;
		for(int j = a-1;j >= 0;j--)
		{
			cout<< bb[b[j]] << " ";
		}
		cout<<endl;
		for(int j = a-1;j >= 0;j--)
	   	{
	   		cout<< dd[d[j]] << " ";
	   	}
	}
}
		
			
2025/7/22 11:32
加载中...