that's my code , and i can't understand why i have RUNTime_Error?? can someone explain me??↵
↵
↵
~~~~~↵
limite = input();↵
Arrays = map( int, raw_input().split( ) );↵
Orden = map( int, raw_input().split( ) );↵
MaxValue = 0;↵
Visitado = '0 '*100001;↵
DisjointSet = { key : key for key in range( 1 , limite + 1 ) }↵
DisjointValueSet = { key : 0 for key in range( 1 , limite + 1 ) }↵
Visitado = Visitado.split();↵
↵
def FindSetDSU( posicion ):↵
if posicion == DisjointSet[ posicion ]:↵
return posicion;↵
else:↵
DisjointSet[ posicion ] = FindSetDSU( DisjointSet[ posicion ] );↵
return DisjointSet[ posicion ];↵
↵
def NumberMax(posicion):↵
Visitado[posicion] = '1'; # warning↵
Rpta = Arrays[ posicion — 1 ];↵
Pos_A = FindSetDSU( posicion );↵
↵
if posicion > 1 and Visitado[posicion - 1] == '1':↵
Pos_B = FindSetDSU(posicion - 1);↵
DisjointValueSet[ Pos_A ] += DisjointValueSet[ Pos_B ];↵
DisjointSet[ Pos_B ] = Pos_A;↵
↵
if posicion < len(Arrays) and Visitado[posicion + 1] == '1':↵
Pos_B = FindSetDSU( posicion + 1 );↵
DisjointValueSet[Pos_A] += DisjointValueSet[Pos_B];↵
DisjointSet[Pos_B] = Pos_A;↵
↵
DisjointValueSet[ Pos_A ] += Arrays[ Pos_A - 1 ];↵
return DisjointValueSet[ Pos_A ];↵
↵
Elementos = [ 0 ];↵
↵
for x in range( limite -1 , 0 , -1 ):↵
MaxValue = max( NumberMax( Orden[ x ] ) , MaxValue )↵
Elementos.append( MaxValue )↵
↵
Elementos.reverse();↵
↵
for x in range( 0, limite ):↵
print Elementos[ x ];↵
~~~~~↵
↵
↵
↵
~~~~~↵
limite = input();↵
Arrays = map( int, raw_input().split( ) );↵
Orden = map( int, raw_input().split( ) );↵
MaxValue = 0;↵
Visitado = '0 '*100001;↵
DisjointSet = { key : key for key in range( 1 , limite + 1 ) }↵
DisjointValueSet = { key : 0 for key in range( 1 , limite + 1 ) }↵
Visitado = Visitado.split();↵
↵
def FindSetDSU( posicion ):↵
if posicion == DisjointSet[ posicion ]:↵
return posicion;↵
else:↵
DisjointSet[ posicion ] = FindSetDSU( DisjointSet[ posicion ] );↵
return DisjointSet[ posicion ];↵
↵
def NumberMax(posicion):↵
Visitado[posicion] = '1'; # warning↵
Rpta = Arrays[ posicion — 1 ];↵
Pos_A = FindSetDSU( posicion );↵
↵
if posicion > 1 and Visitado[posicion - 1] == '1':↵
Pos_B = FindSetDSU(posicion - 1);↵
DisjointValueSet[ Pos_A ] += DisjointValueSet[ Pos_B ];↵
DisjointSet[ Pos_B ] = Pos_A;↵
↵
if posicion < len(Arrays) and Visitado[posicion + 1] == '1':↵
Pos_B = FindSetDSU( posicion + 1 );↵
DisjointValueSet[Pos_A] += DisjointValueSet[Pos_B];↵
DisjointSet[Pos_B] = Pos_A;↵
↵
DisjointValueSet[ Pos_A ] += Arrays[ Pos_A - 1 ];↵
return DisjointValueSet[ Pos_A ];↵
↵
Elementos = [ 0 ];↵
↵
for x in range( limite -1 , 0 , -1 ):↵
MaxValue = max( NumberMax( Orden[ x ] ) , MaxValue )↵
Elementos.append( MaxValue )↵
↵
Elementos.reverse();↵
↵
for x in range( 0, limite ):↵
print Elementos[ x ];↵
~~~~~↵
↵