离谱
  • 板块P3619 魔法
  • 楼主DicaprioD
  • 当前回复9
  • 已保存回复9
  • 发布时间2024/11/21 18:43
  • 上次更新2024/11/21 20:44:51
查看原帖
离谱
946114
DicaprioD楼主2024/11/21 18:43

我照着这道题自己打了一个题面,自己出了一道团队内部题,自己造的数据,但原题的每一篇题解都过不了我的数据,只有我自己的代码两道题的数据都能过,就离谱了,是我数据的问题还是题解的问题?

我出的数据点:U506488

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=3e5+100;
struct re{
	int tt,bb;
}a[N];
struct Re{
	int tt,bb;
}b[N];
int Z,n,t;
int c1,c2;
bool cmp1(re x,re y){
	return x.tt<y.tt;
}
bool cmp2(Re x,Re y){
	return x.tt+x.bb>y.tt+y.bb;
}
signed main(){
//	freopen("10.in","r",stdin);
//	freopen("10.out","w",stdout);
	cin>>Z;
	while(Z--){
		c1=0,c2=0;
		bool f=1;
		cin>>n>>t;
		for(int i=1;i<=n;i++){
			int x,y;
			cin>>x>>y;
			if(y>0) a[++c1].tt=x,a[c1].bb=y;
			else b[++c2].tt=x,b[c2].bb=y;
		}
		sort(a+1,a+c1+1,cmp1);
		sort(b+1,b+c2+1,cmp2);
		for(int j=1;j<=c1;j++){
			if(a[j].tt<t){
				t+=a[j].bb;
			}
			else{
				f=0;
				break;
			}
		}
		for(int j=1;j<=c2;j++){
			if(b[j].tt<t){
				t+=b[j].bb;
			}
			else{
				f=0;
				break;
			}
			if(t<=0){
				f=0;
				break;
			}
		}
		if(!f) cout<<"N0"<<'\n';
		else cout<<"YE5"<<'\n';
	}
	return 0;
} 
2024/11/21 18:43
加载中...