离谱18分
  • 板块P3619 魔法
  • 楼主Chang0311
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/6/3 10:05
  • 上次更新2023/10/23 14:02:11
查看原帖
离谱18分
796937
Chang0311楼主2023/6/3 10:05

看似风平浪静 实则暗藏玄机

救救我吧

#include<vector>
#include<algorithm>
using namespace std;

bool st = false;

struct pairr
{
	int t, b;
};

bool cop(pairr a1, pairr a2)
{
	return a1.b+a1.t > a2.b+a2.t;
}

bool com(pairr a1, pairr a2)
{
	return a1.b < a2.b;
}

inline void outout();

vector<pairr> p,p0;

void doit(const int &T)
{
	int TT = T;
	for(int i = 0; i < p0.size(); ++i)
	{
		if(TT > p0[i].t) TT += p0[i].b;
		else 
		{
			outout();
			break;
		}
	}
	
	for(int i = 0; i < p.size(); ++i)
	{
		if(TT > p[i].t) TT += p[i].b;
		else 
		{
			outout();
			return;
		}
		if(TT <= 0)
		{
			outout();
			return;
		}
	}
}

int main()
{
	int z;
	cin >> z;
	for(int oou = 0; oou < z; ++oou)
	{
		int n, T;
		cin >> n >> T;
		for(int i = 1; i <= n; ++i)
		{
			int x, y;
			pairr ttt;
			cin >> x >> y;
			ttt.t = x;
			ttt.b = y;
			if(ttt.b <= 0) p.push_back(ttt);
			else p0.push_back(ttt);
		}
		sort(p.begin(), p.end(), cop);
		sort(p0.begin(), p0.end(), com);
		doit(T);
		
		if(st) cout << "-1#s\n";
		else cout << "+1#s\n";
	}
	return 0;
}

inline void outout()
{
	st = true;
}```
2023/6/3 10:05
加载中...