65分求助!!!
查看原帖
65分求助!!!
844496
J_Kobe楼主2024/4/13 15:36
#include <bits/stdc++.h>
using namespace std;

const int N = 500005;
struct node{
	int a, id;
	int ch;
} a[N];
bool cmp(node a, node b)
{
	return a.a < b.a;
}
bool cmp2(node a, node b)
{
	return a.id < b.id;
}

signed main()
{
	ios::sync_with_stdio(0);
	cin.tie();cout.tie();
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		cin >> a[i].a;
		a[i].id = i;
	}
	sort(a + 1, a + 1 + n, cmp);
	int l = 1, r = n;
	while (l <= r)
	{
		int mid = (l + r) / 2;
		int ans = a[mid].a;
		bool flag = true;
		for (int i = 1; i <= n; i++)
		{
			if (i == mid)
			{
				continue;
			}
			if (ans > a[i].a)
			{
				ans += a[i].a;
			}
			else
			{
				flag = false;
				break;
			}
		}
		if (flag == true)
		{
			r = mid - 1;
		}
		else
		{
			l = mid + 1;
		}
	}
	for (int i = l; i <= n; i++)
	{
		a[i].ch = 1;
	}
	sort(a + 1, a + 1 + n, cmp2);
	for (int i = 1; i <= n; i++)
	{
		if (a[i].ch == 1)
		{
			cout << 'T';
		}
		else
		{
			cout << 'N';
		}
	}
	return 0;
}

/*
6
2 7 1 8 2 8
*/
2024/4/13 15:36
加载中...