Pagini recente » Cod sursa (job #168514) | Cod sursa (job #2034983) | Cod sursa (job #2795764) | Cod sursa (job #1307223) | Cod sursa (job #544034)
Cod sursa(job #544034)
#include <stdio.h>
#include <algorithm>
using namespace std;
#define nmax 200005
struct element
{
int a, b, poz;
long long c1, c2;
};
int i, n, m, p1, p2, p[nmax];
element v[nmax];
bool cmp(element a, element b)
{
return ((a.c1<b.c1) || ((a.c1==b.c1)&&(a.c2>b.c2)));
}
long int par(int a)
{
if (p[a]==a)
return a;
else
return par(p[a]);
}
int main()
{
freopen("lazy.in","r",stdin);
freopen("lazy.out","w",stdout);
scanf("%ld %ld",&n,&m);
for (i=1;i<=m;i++)
{
scanf("%d %d %lld %lld", &v[i].a,&v[i].b,&v[i].c1,&v[i].c2);
v[i].poz=i;
p[v[i].a]=v[i].a; p[v[i].b]=v[i].b;
}
sort(v+1,v+1+m,cmp);
for (i=1;i<=m;i++)
{
p1=par(v[i].a); p2=par(v[i].b);
if (p1!=p2)
{
p[p2]=p1;
printf("%d\n",v[i].poz);
}
}
return 0;
}