A 厂最近举办了一场大型的交易会。交易会上共有 � n 家店铺参与(编号为 1 1 到 � n),当然这些店铺也会参与交易。如果店铺 � a 购买了店铺 � b 的产品,就算生成一桩交易,且每桩交易 � a 都会向 � b 支付 � c 万元。现想问哪家店铺,参与交易总额最大。
交易总额 = 交易总收入 + 交易总支出
请使用邻接表的方法解决这道题目。
输入格式 第一行时输入两个整数: � , � ( 1 ≤ � , � ≤ 1 0 5 ) n,m(1≤n,m≤10 5 ),分别表示参与交易的店铺总数和交易总数。
接下来 � m 行每行三个整数: � , � , � ( 1 ≤ � , � ≤ � ) ( 1 ≤ � ≤ 1 0 5 ) a,b,c(1≤a,b≤n)(1≤c≤10 5 ),表示店铺 � a 向 � b 支付了 � c 万元。
注意:两家店铺可能会多次交易,且没有两家店铺是同一家的情况。
输出格式 输出 1 1 行一个整数结果,表示参与交易总额最大的那所店铺的编号。
如果两家交易总额相同,输出编号更小的。
格式说明 输出时每行末尾的多余空格,不影响答案正确性
输入、输出要求 要求使用「文件输入、输出」的方式解题,输入文件为 business.in,输出文件为 business.out 样例输入 10000 2 1 2 1 2 4 2 样例输出 2
#include <bits/stdc++.h>
using namespace std;
long long val[100010];
int main(){
freopen("business.in","r",stdin);
freopen("business.out","w",stdout);
int n, m;
cin >>n >> m;
for(int i=0;i<m; i++){
int a, b,c;
cin >> a>> b >>c;
val[a]+= c;
val[b]+=c;
}
int mx = 1;
for(int i=2;i<=n; i++){
if(val[i]>val[mx]){
mx = i;
}
}
cout << mx;
return 0;
}
50代码