社区讨论

0pts RE&TLE ??? 闭关

B4452[GESP202512 四级] 优先购买参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mmetmcar
此快照首次捕获于
2026/03/06 19:38
4 天前
此快照最后确认于
2026/03/08 11:55
前天
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
struct goods{
	string name;
	int v;
	int price;
};
bool cmpstr(string a,string b){
	if(a+b>b+a) return false;
	else return true;
}
bool cmp(goods a,goods b){
	if(a.v<b.v) return true;
	else if(a.v>b.v) return false;
	else if(a.price<b.price) return true;
	else if(a.price>b.price) return false;
	else if(cmpstr(a.name,b.name)==true) return true;
	else return false;
}
goods s[1005];
int t[1005];
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>s[i].name>>s[i].price>>s[i].v;
		t[i]=i;
	}
	for(int i=n-1;i>=1;i--){
		for(int j=1;j<=i;j++){
			if(cmp(s[j],s[j+1])==false) swap(t[j],t[j+1]);
		}
	} 
	for(int i=1;i<=m;i++){
		for(int j=1;j<=m;i++){
			if(t[j]==i){
				if(s[j].price<=n){
					cout<<s[j].name<<endl;
					n-=s[j].price;
				}
				break;
			}
		}
	}
}

回复

0 条回复,欢迎继续交流。

正在加载回复...