1 条题解
-
0
#include<algorithm> #include<iostream> #include<cstdio> #include<math.h> #include<string> using namespace std; const long long INF=0x3f3f3f3f; const long long N=1e5+10; long long n,m,T,a_cnt,b_cnt; struct node{ int c,w; }a[N],b[N]; bool cmp_a(node a,node b){ return a.w<b.w; } bool cmp_b(node a,node b){ return a.w>b.w; } int main(){ cin>>T; while(T--){ a_cnt=b_cnt=0; cin>>n>>m; for(int c,w,i=1;i<=n;i++){ cin>>w>>c; if(c>0){ a[++a_cnt].c=c; a[a_cnt].w=w; }else{ b[++b_cnt].c=c; b[b_cnt].w=w; } } sort(a+1,a+a_cnt+1,cmp_a); sort(b+1,b+b_cnt+1,cmp_b); bool flag=1; if(m<0)flag=0; for(int i=1;i<=a_cnt&&flag;i++){ if(m<a[i].w)flag=0; m+=a[i].c; } for(int i=1;i<=b_cnt&&flag;i++){ if(m<b[i].w)flag=0; m+=b[i].c; if(m<0)flag=0; } if(flag)cout<<"+2.5\n"; else cout<<"-2.5\n"; } return 0; }
信息
- ID
- 2987
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 104
- 已通过
- 19
- 上传者