import java.util.* ;
public class Main {
static int N, M, S, T;
static ArrayList< Integer> [ ] ady, pesos;
static int [ ] d, pi;
static boolean [ ] tachado;
static int INFINITO = 1000000000 ;
public static void main( ) {
leer_grafo( ) ;
dijkstra( ) ;
}
static void dijkstra( ) {
tachado = new boolean [ N] ;
d = new int [ N] ;
pi = new int [ N] ;
d[ S] = 0 ;
for ( int i= 0 ; i< N; i++ ) {
int U = siguiente_vertice( ) ;
tachado[ U] = true ;
for ( int j= 0 ; j< ady[ U] .size ( ) ; j++ ) {
int V = ady[ U] .get ( j) ;
int peso_V = pesos[ U] .get ( j) ;
if ( d[ U] + peso_V < d[ V] ) {
d[ V] = d[ U] + peso_V;
pi[ V] = U;
}
}
}
}
static int siguiente_vertice( ) {
int sig = - 1 ;
int min_d = INFINITO;
for ( int i= 0 ; i< N; i++ ) {
if ( tachado[ i] ) continue ; //Ignore los tachados
if ( d[ i] < min_d) {
min_d = d[ i] ;
sig = i;
}
}
return sig;
}
static void leer_grafo( ) {
Scanner lector
= new Scanner
( System .
in ) ; N = lector.nextInt ( ) ; M = lector.nextInt ( ) ;
S = lector.nextInt ( ) ; T = lector.nextInt ( ) ;
for ( int i= 0 ; i< N; i++ ) {
ady[ i] = new ArrayList< Integer> ( ) ;
pesos[ i] = new ArrayList< Integer> ( ) ;
}
for ( int i= 0 ; i< M; i++ ) {
int v1 = lector.nextInt ( ) ;
int v2 = lector.nextInt ( ) ;
int peso = lector.nextInt ( ) ;
ady[ v1] .add ( v2) ;
pesos[ v1] .add ( peso) ;
ady[ v2] .add ( v1) ;
pesos[ v2] .add ( peso) ;
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewogIAogIHN0YXRpYyBpbnQgTiwgTSwgUywgVDsKICBzdGF0aWMgQXJyYXlMaXN0PEludGVnZXI+W10gYWR5LCBwZXNvczsKICBzdGF0aWMgaW50W10gZCwgcGk7CiAgc3RhdGljIGJvb2xlYW5bXSB0YWNoYWRvOyAKICBzdGF0aWMgaW50IElORklOSVRPID0gMTAwMDAwMDAwMDsKCiAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oKSB7CiAgICBsZWVyX2dyYWZvKCk7CiAgICBkaWprc3RyYSgpOwogICAgU3lzdGVtLm91dC5wcmludChBcnJheXMudG9TdHJpbmcoZCkpOwogICAgU3lzdGVtLm91dC5wcmludChBcnJheXMudG9TdHJpbmcocGkpKTsKICB9CgogIHN0YXRpYyB2b2lkIGRpamtzdHJhKCkgewogICAgdGFjaGFkbyA9IG5ldyBib29sZWFuW05dOwogICAgZCA9IG5ldyBpbnRbTl07CiAgICBwaSA9IG5ldyBpbnRbTl07CiAgICBBcnJheXMuZmlsbChkLCBJTkZJTklUTyk7CiAgICBkW1NdID0gMDsKICAgIEFycmF5cy5maWxsKHBpLCAtMSk7CiAgICBmb3IoaW50IGk9MDtpPE47aSsrKSB7CiAgICAgIGludCBVID0gc2lndWllbnRlX3ZlcnRpY2UoKTsKICAgICAgdGFjaGFkb1tVXSA9IHRydWU7CiAgICAgIGZvcihpbnQgaj0wOyBqPGFkeVtVXS5zaXplKCk7aisrKSB7CiAgICAgICAgaW50IFYgPSBhZHlbVV0uZ2V0KGopOwogICAgICAgIGludCBwZXNvX1YgPSBwZXNvc1tVXS5nZXQoaik7CiAgICAgICAgaWYgKGRbVV0gKyBwZXNvX1YgPCBkW1ZdKSB7CiAgICAgICAgICBkW1ZdID0gZFtVXSArIHBlc29fVjsKICAgICAgICAgIHBpW1ZdID0gVTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9CgogIHN0YXRpYyBpbnQgc2lndWllbnRlX3ZlcnRpY2UoKSB7CiAgICBpbnQgc2lnID0gLTE7CiAgICBpbnQgbWluX2QgPSBJTkZJTklUTzsKICAgIGZvcihpbnQgaT0wO2k8TjtpKyspIHsKICAgICAgaWYgKHRhY2hhZG9baV0pIGNvbnRpbnVlOyAvL0lnbm9yZSBsb3MgdGFjaGFkb3MKICAgICAgaWYgKGRbaV0gPCBtaW5fZCkgewogICAgICAgIG1pbl9kID0gZFtpXTsKICAgICAgICBzaWcgPSBpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gc2lnOwogIH0KCiAgc3RhdGljIHZvaWQgbGVlcl9ncmFmbygpIHsKICAgIFNjYW5uZXIgbGVjdG9yID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKICAgIE4gPSBsZWN0b3IubmV4dEludCgpOyAgICBNID0gbGVjdG9yLm5leHRJbnQoKTsKICAgIFMgPSBsZWN0b3IubmV4dEludCgpOyAgICBUID0gbGVjdG9yLm5leHRJbnQoKTsKICAgIGFkeSA9IG5ldyBBcnJheUxpc3RbTl07IAogICAgcGVzb3MgPSBuZXcgQXJyYXlMaXN0W05dOwogICAgZm9yKGludCBpPTA7aTxOO2krKykgewogICAgICBhZHlbaV0gPSBuZXcgQXJyYXlMaXN0PEludGVnZXI+KCk7CiAgICAgIHBlc29zW2ldID0gbmV3IEFycmF5TGlzdDxJbnRlZ2VyPigpOwogICAgfQogICAgZm9yKGludCBpPTA7aTxNO2krKykgewogICAgICBpbnQgdjEgPSBsZWN0b3IubmV4dEludCgpOwogICAgICBpbnQgdjIgPSBsZWN0b3IubmV4dEludCgpOwogICAgICBpbnQgcGVzbyA9IGxlY3Rvci5uZXh0SW50KCk7CiAgICAgIGFkeVt2MV0uYWRkKHYyKTsKICAgICAgcGVzb3NbdjFdLmFkZChwZXNvKTsKICAgICAgYWR5W3YyXS5hZGQodjEpOwogICAgICBwZXNvc1t2Ml0uYWRkKHBlc28pOwogICAgfQogIH0KfQ==
compilation info
Note: Main.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
spoj: The program compiled successfully, but main class was not found.
Main class should contain method: public static void main (String[] args).
stdout