#include"bits/stdc++.h"
using namespace std;
using ll=long long;
#define S second
#define F first
int p[300],T,M;
int fnd(int v){
if(v!=p[v])p[v]=fnd(p[v]);
return p[v];
}
void mrg(int a,int b){
a=fnd(a),b=fnd(b);
p[b]=a;
}
int main(){
cin.tie(0)->sync_with_stdio(0);
int n,m;
cin>>n>>m;
array<int,5>a[m];
for(auto&i:a){
cin>>i[3]>>i[4]>>i[1]>>i[2];
i[0]=i[1]*i[2];
T+=i[1];
M+=i[2];
}
for(int i=0;i<300;i++)p[i]=i;
vector<pair<int,int>>ans;
sort(a,a+m);
for(auto i:a){
if(fnd(i[3])==fnd(i[4]))continue;
ans.push_back({i[3],i[4]});
mrg(i[3],i[4]);
T+=i[1];
M+=i[2];
}
cout<<T<<' '<<M<<'\n';
for(auto i:ans)cout<<i.F<<' '<<i.S<<'\n';
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |