嘤嘤的闺蜜
作者:
啼莺修竹
,
2023-05-22 02:18:38
,
所有人可见
,
阅读 265
#include<bits/stdc++.h>
#define fi first
#define se second
using namespace std;
typedef pair<int,int> PII;
typedef long long LL;
const int N = 1e5+10;
int n, m, q;
vector<unordered_map<int,int>> w(N);
unordered_map<int,LL> ha;
int main()
{
cin>>n>>m>>q;
for(int i=0;i<m;i++)
{
int a,c,l;
cin>>a>>c>>l;
ha[c]+=l;
w[c][a]+=l;
}
map<PII,LL> res;
while(q--)
{
int t, u, v;
cin>>t;
if(t==1){
cin>>u;
cout<<ha[u]<<endl;
}else{
cin>>u>>v;
if(u==v){
cout<<ha[u]<<endl;
}else{
if(u>v) swap(u, v);
if(res.count({u, v})){
cout<<res[{u,v}]<<endl;
continue;
}
LL &sum = res[{u, v}];
sum = ha[u] + ha[v];
if(w[u].size()>w[v].size()) swap(u, v);
for(auto t:w[u]){
if(w[v].count(t.fi)) sum-=min(t.se,w[v][t.fi]);
}
cout<<sum<<endl;
}
}
}
return 0;
}