Pagini recente » Cod sursa (job #1723028) | Cod sursa (job #1854803) | Cod sursa (job #1521785) | Cod sursa (job #1083075) | Cod sursa (job #2028778)
# include <fstream>
# include <algorithm>
# define DIM 200010
# define a first.first.first
# define b first.first.second
# define c first.second
# define d second.first
# define e second.second
using namespace std;
ifstream fin("lazy.in");
ofstream fout("lazy.out");
pair<pair<pair<long long,long long>,int>,pair<int,int> > sor[DIM];
int t[DIM],sol[DIM],n,m,i,ra,rb;
int rad(int x){
int y=x;
while(t[x]>0)
x=t[x];
while(t[y]>0){
int aux=y;
y=t[y];
t[aux]=x;
}
return x;
}
int main () {
fin>>n>>m;
for(i=1;i<=n;i++)
t[i]=-1;
for(i=1;i<=m;i++){
fin>>sor[i].c>>sor[i].d>>sor[i].a>>sor[i].b;
sor[i].b=-sor[i].b;
sor[i].e=i;
}
sort(sor+1,sor+m+1);
for(i=1;i<=m;i++){
ra=rad(sor[i].c);
rb=rad(sor[i].d);
if(ra!=rb){
if(t[ra]<t[rb]){
t[ra]+=t[rb];
t[rb]=ra;
}
else{
t[rb]+=t[ra];
t[ra]=rb;
}
fout<<sor[i].e<<"\n";
}
}
return 0;
}