Cod sursa(job #1614182)

Utilizator AeroHHorea Stefan AeroH Data 25 februarie 2016 20:41:21
Problema PScNv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>
#define ll long long int
#define ep1 1000000ll
#define ep2 1000000000000ll
using namespace std;
string z = "pscnv.";

ifstream f(z+"in");
ofstream g(z+"out");

int i,n,k,a,r,b,c,x,y,m,fv[500001],p[250001];
ll v[500001];

int fi(const int &a)
{
if (a!=p[a])
    return p[a]=fi(p[a]);
return p[a];
}

int main()
{

f>>n>>m>>x>>y;
for (i=1;i<=m;++i)
{
    f>>a>>b>>c;
    ll e=ep2*c + ep1*a + b;
    v[i]=e;
}
sort(v+1,v+m+1);
for(i=1;i<=n;++i)
    p[i]=i;
for (i=1;i<=m;++i)
{
    c=v[i]/ep2;v[i]%=ep2;
    a=v[i]/ep1;v[i]%=ep1;
    b=v[i];

    if (fi(a)!=fi(b))
        p[a]=p[b];
    if (fi(x)==fi(y))
    {
        g<<c;
        return 0;
    }
}
}