Pagini recente » Cod sursa (job #1502566) | Cod sursa (job #1749225) | Cod sursa (job #769866) | Cod sursa (job #2065675) | Cod sursa (job #728955)
Cod sursa(job #728955)
#include<iostream>
#include<fstream>
#include<vector>
#include<algorithm>
using namespace std;
ifstream in("lazy.in");
ofstream out("lazy.out");
struct muc {
long long a,b,d,c,nr;
};
const int N = 200010;
int n,mm,tata[N];
vector<int> mu;
muc m[N];
bool cmp(muc a, muc b) {
return a.d==b.d ? a.c<b.c : a.d<b.d;
}
int radacina(int nod) {
if(!tata[nod])
return nod;
int rez = radacina(tata[nod]);
tata[nod] = rez;
return rez;
}
int main() {
int i,x,y;
in >> n >> mm;
for(i=1;i<=mm;++i)
in >> m[i].a >> m[i].b >> m[i].d >> m[i].c, m[i].nr = i;
sort(m+1, m+mm+1, cmp);
for(i = 1; i<=n; ++i) {
x = radacina(m[i].a);
y = radacina(m[i].b);
if(x!=y) {
mu.push_back(m[i].nr);
tata[y] = x;
}
}
sort(&mu[1], &mu[mu.size()]);
for(i=0;i!=mu.size();++i)
out << mu[i] << "\n";
return 0;
}