Pagini recente » Cod sursa (job #2548294) | Cod sursa (job #118168) | Cod sursa (job #492540) | Cod sursa (job #1587734) | Cod sursa (job #541441)
Cod sursa(job #541441)
#include<fstream>
#include<algorithm>
#define MAX 200001
using namespace std;
int car[MAX],n,m,sol[MAX];
struct muchie
{
int x,y,a,poz;
long long c,p;
}v[MAX];
int cmp(muchie a, muchie b)
{
return (a.c<b.c || a.c == b.c && a.p>b.p);
}
int main()
{
ifstream f("lazy.in");
f>>n>>m;
int i;
for(i=1;i<=m;++i)
{
f>>v[i].x>>v[i].y>>v[i].c>>v[i].p;
v[i].p -= v[i].c * v[i].p;
v[i].poz = i;
}
f.close();
sort(v+1, v+1+m, cmp);
car[v[1].x] = car[v[1].y] = 1;
v[1].a = 1;
int cont,p;
long long cost = v[1].c;
sol[1] = v[1].poz;
cont = 1;
while(cont<n-1)
{
for(i=2;i<=m;++i)
if((!car[v[i].x] || !car[v[i].y]) && (car[v[i].x] || car[v[i].y]))
{
p=i;
i=m;
}
car[v[p].x] = car[v[p].y] = 1;
v[p].a = 1;
cost += v[p].c;
++cont;
sol[cont] = v[p].poz;
}
ofstream g("lazy.out");
for(i=1;i<=n-1;++i)
if(v[i].a)g<<sol[i]<<"\n";
g.close();
return 0;
}