看似风平浪静 实则暗藏玄机
#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;
}```