WA求助
  • 板块CF3B Lorry
  • 楼主_LighT_
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/10/10 21:23
  • 上次更新2023/11/4 04:06:52
查看原帖
WA求助
522835
_LighT_楼主2021/10/10 21:23
#include<bits/stdc++.h>
using namespace std;
struct node{
	int t,p;
	char num;
}a[100001];
inline bool cmp(node xx,node yy){
	if(xx.t!=yy.t)
		if(xx.t==1)
			return (xx.p<<1)>yy.p;
		else
			return xx.p>(yy.p<<1);
	else
		return xx.p>yy.p;
}
int main(){
	int n,v,ans=0;
	string flag="";
	scanf("%d%d",&n,&v);
	for(int i=1;i<=n;++i){
		scanf("%d%d",&a[i].t,&a[i].p);
		a[i].num=char(i)+'0';
	}
	sort(a+1,a+n+1,cmp);
	//for(int i=1;i<=n;i++)
	//	cout<<a[i].p<<endl;
	int i=1;
	for(;i<=n&&v>=a[i].t;++i){
		ans+=a[i].p;
		v-=a[i].t;
		flag+=a[i].num;
	}
	if(v==1)
		for(int j=i;j<=n;++j)
			if(a[j].t==1){
				flag+=a[j].num;
				ans+=a[j].p;
				break;
			}
	sort(flag.begin(),flag.end());
	printf("%d\n",ans);
	for(int k=0;k<flag.size();++k)
		cout<<flag[k]<<' ';
	return 0;
}

请大佬们看一下我的代码哪里出了问题,卡在了 #4 测试点

2021/10/10 21:23
加载中...