Pagini recente » Cod sursa (job #1349523) | Cod sursa (job #1076407) | Cod sursa (job #670602) | Cod sursa (job #670428) | Cod sursa (job #1842074)
#include<fstream>
#include<algorithm>
#define DIM 200005
using namespace std;
int n, m, i, r1, r2;
int v[DIM];
struct str{
int x, y, ind;
long long c1, c2;
};
str w[DIM];
ifstream fin("lazy.in");
ofstream fout("lazy.out");
int cmp(str a, str b){
if(a.c1 == b.c1){
return a.c2 > b.c2;
}
return a.c1 < b.c1;
}
int rad(int x){
while(v[x] > 0){
x = v[x];
}
return x;
}
int main(){
fin>> n >> m;
for(i = 1; i <= m; i++){
fin>> w[i].x >> w[i].y >> w[i].c1 >> w[i].c2;
w[i].ind = i;
}
sort(w + 1, w + m + 1, cmp);
for(i = 1; i <= n; i++){
v[i] = -1;
}
for(i = 1; i <= m; i++){
r1 = rad(w[i].x);
r2 = rad(w[i].y);
if(r1 != r2){
fout<< w[i].ind <<"\n";
if(v[r1] < v[r2]){
v[r1] += v[r2];
v[r2] = r1;
}
else{
v[r2] += v[r1];
v[r1] = r2;
}
}
}
return 0;
}