Pagini recente » Cod sursa (job #1739750) | Cod sursa (job #309698) | Cod sursa (job #3126756) | Cod sursa (job #450801) | Cod sursa (job #2972598)
#include <bits/stdc++.h>
using namespace std;
ifstream in("lazy.in");
ofstream out("lazy.out");
const int N = 4e5 + 5;
int n, m;
struct elem
{
int x;
int y;
int cost1;
int cost2;
int ind;
bool operator<(const elem p) const{
if(cost1 == p.cost1)
return cost2 > p.cost2;
return cost1 < p.cost1;
}
} v[N + 1];
int sef[N + 1];
int find(int nod)
{
if(nod == sef[nod])
return nod;
return sef[nod] == find(sef[nod]);
}
signed main()
{
in >> n >> m;
for(int i = 1; i <= n; i++)
{
sef[i] = i;
}
for(int i = 1; i <= m; i++)
{
in >> v[i].x >> v[i].y >> v[i].cost1 >> v[i].cost2;
v[i].ind = i;
}
sort(v + 1, v + m + 1);
for(int i = 1; i <= m; i++)
{
int a = find(v[i].x), b = find(v[i].y);
if(a != b)
{
sef[b] = a;
out << v[i].ind << '\n';
}
}
return 0;
}