Pagini recente » Cod sursa (job #433542) | Cod sursa (job #1848764) | Cod sursa (job #2007850) | Cod sursa (job #397773) | Cod sursa (job #2014660)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("lazy.in");
ofstream fout("lazy.out");
int i,aux,n,k,j,p,s,unu,t,m,doi,x,mini,maxi,sol,cont,viz[200010],y,cost;
struct coada
{
int x,y,ind;
long long int c1,c2;
}c[200010];
bool cmp(coada i,coada j)
{
if(i.c1== j.c1)
return i.c2>j.c2;
return i.c1<j.c1;
}
int parinte(int p)
{
if(viz[p]==p )return p;
viz[p]=parinte(viz[p]);
return viz[p];
}
void unite(int i,int j)
{
viz[parinte(i)]=parinte(j);
}
int main()
{
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>c[i].x>>c[i].y>>c[i].c1>>c[i].c2;
c[i].ind=i;
}
sort(c+1,c+m+1,cmp);
for(i=1;i<=n;i++)
{
viz[i]=i;
}
cont=0;
k=0;
for(i=1;i<=m;i++)
{
if(parinte(c[i].x) != parinte(c[i].y))
{
unite(c[i].x,c[i].y);
fout<<c[i].ind<<"\n";
}
}
}