p1048采药,死活只能过一个,哪位大神能帮忙看看错哪里了
  • 板块学术版
  • 楼主sxysky
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/6/29 20:03
  • 上次更新2023/11/4 21:19:17
查看原帖
p1048采药,死活只能过一个,哪位大神能帮忙看看错哪里了
472109
sxysky楼主2021/6/29 20:03
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;

struct cy
{
	int sj,jz;//时间 价值 
};cy a[105];

bool compare(cy a,cy b)
{
	return a.jz>b.jz;
}

int main()
{
	int t,m,d=0;
	
	cin>>t>>m;//时间 数量 
	
	for(int i=0;i<m;i++)
	{
		cin>>a[i].sj>>a[i].jz;
	}
	
	sort(a,a+m,compare);
	
	for(int i=0;i<m;i++)
	{
		for(int j=i+1;j<m;j++)
		{
			if(a[j].sj<a[i].sj&&a[i].jz==a[j].jz)
			{
				swap(a[i].sj,a[j].sj);
			}
		}
	}
	
	for(int i=0;i<m;i++)
	{
		if(a[i].sj<=t)
		{
			t-=a[i].sj;
			
			d+=a[i].jz;
		}
	}
	
	cout<<d;
	
	return 0;
}
2021/6/29 20:03
加载中...