专栏文章

405J1R训练(T636406 同学会)

个人记录参与者 1已保存评论 0

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@miosmet6
此快照首次捕获于
2025/12/03 00:29
3 个月前
此快照最后确认于
2025/12/03 00:29
3 个月前
查看原文

正确代码

先来一个struct City{int num;int dis;string name;int money}a[155];再来一个cmp,然后定一个len=1;再来一个while(cin):
CPP
while(cin>>a[len].num>>a[len].dis>>a[len].name){
	len++;
} 
然后在外面len--;再来一个嵌套循环:
CPP
for(int i=1;i<=len;i++){
	for(int j=1;j<=len;j++){
		if(a[i].name!=a[j].name){
			a[i].money+=abs(a[i].dis-a[j].dis)*a[j].num;
		}
	}
}
然后来个sort排序,最后来个输出。

正确代码

CPP
#include<bits/stdc++.h>
using namespace std;
struct City{
	int num;
	int dis;
	string name;
	int money;
}a[155];
int cmp(City c1,City c2){
	if(c1.money==c2.money){
		return c1.dis<c2.dis;
	}
	return c1.money<c2.money;
}
int main(){
	int len=1;
	while(cin>>a[len].num>>a[len].dis>>a[len].name){
		len++;
	} 
	len--;
	for(int i=1;i<=len;i++){
		for(int j=1;j<=len;j++){
			if(a[i].name!=a[j].name){
				a[i].money+=abs(a[i].dis-a[j].dis)*a[j].num;
			}
		}
	}
	sort(a+1,a+1+len,cmp);
	cout<<a[1].name<<" "<<a[1].money;
	return 0;
} 

评论

0 条评论,欢迎与作者交流。

正在加载评论...