Pagini recente » Cod sursa (job #2405955) | Cod sursa (job #912825) | Cod sursa (job #2644033) | Cod sursa (job #2263615) | Cod sursa (job #543770)
Cod sursa(job #543770)
# include <fstream>
# include <algorithm>
# define DIM 200003
# define pb push_back
# define mp make_pair
using namespace std;
struct nod{
long long a, b, i, c1, c;
nod(){}
nod(long long X, long long Y, long long I, long long C1, long long C){
a=X;b=Y;i=I;c1=C1;c=C;}
friend bool operator < (const nod &a, const nod &b){
if (a.c1<b.c1)return 1;
if (a.c1==b.c1 && a.c<b.c)return 1;
return 0;
}
};
int n, m, t[DIM], s[DIM];
nod v[DIM];
void read ()
{
ifstream fin ("lazy.in");
fin>>n>>m;
long long a, b, c, d;
for(int i=1;i<=n;++i)
{
fin>>a>>b>>c>>d;
v[i]=nod(a, b, i, c, d);
}
}
int rad (int k)
{
int y=k, i;
while (t[k])
k=t[k];
while (t[y])
{
i=y;
y=t[y];
t[i]=k;
}
return k;
}
void solve ()
{
sort(v+1, v+m+1);
int ra, rb;
for(int i=1;s[0]<n-1;++i)
{
ra=rad(v[i].a);
rb=rad(v[i].b);
if (ra!=rb)
{
t[ra]=rb;
s[++s[0]]=v[i].i;
}
}
}
int main ()
{
read ();
solve ();
freopen("lazy.out", "w", stdout);
for(int i=1;i<s[0];++i)
printf("%d\n", s[i]);
return 0;
}