求调 WA on #1 悬关
  • 板块CF3B Lorry
  • 楼主Graph_Theory
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/10 09:03
  • 上次更新2024/7/10 10:22:30
查看原帖
求调 WA on #1 悬关
672044
Graph_Theory楼主2024/7/10 09:03
#include <bits/stdc++.h>
using namespace std;

struct node
{
	int name,pri;
}a[100009],b[100009];
int n,asiz=0,bsiz=0,v,astart=0,bstart=0;
int ans=0;
int af[100001],bf[100001],
an[100001],bn[100001];

int le,ri;

bool cmp(node A,node B)
{
	return A.pri>B.pri;
}

int main()
{
	cin>>n>>v;
	for(int i=1;i<=n;i++)
	{
		int siz;cin>>siz;
		if(siz==1)
		{
			cin>>a[++asiz].pri;
			a[asiz].name=i;
		}
		else
		{
			cin>>b[++bsiz].pri;
			b[bsiz].name=i;
		}
	}
	
	sort(a+1,a+asiz+1,cmp);
	sort(b+1,b+bsiz+1,cmp);
	
	for(int i=1;i<=asiz;i++)
		af[i]=af[i-1]+a[i].pri,
		an[i]=a[i].name;
	for(int i=1;i<=bsiz;i++)
		bf[i]=bf[i-1]+b[i].pri,
		bn[i]=b[i].name;
	
	
	for(int i=1;i<=min(v,asiz);i++)
	{
		int j=min((v-i)/2,bsiz);
		if(i+j*2>v) continue;
		if(af[i]+bf[j]>ans)
		{
			ans=af[i]+bf[j];
			le=i;
			ri=j;
		}
	}
	
	cout<<ans<<endl;
	for(int i=1;i<=le;i++) cout<<an[i]<<" ";
	for(int i=1;i<=ri;i++) cout<<bn[i]<<" ";
	return 0;
}

实在找不到有啥错误。

2024/7/10 09:03
加载中...