Codeforces - Solución 278A - Circle Line

La línea del círculo del metro Berland tiene n estaciones. Sabemos que las distancias entre todos los pares de estaciones vecinas son:
  • 1 es la distancia entre la 1.a y el 2.a estación ;
  • 2 es la distancia entre el 2.a y el 3.a estación ;
  • ...
  • n  - 1 es la distancia entre la n  - 1 -ésima y  n-ésima estación;
  • n es la distancia entre la n -ésima y la 1.a estación .
Los trenes pasan a lo largo de la línea circular en ambas direcciones. Encontrar la distancia más corta entre estaciones con números s y t.

Entrada
La primera línea contiene un número entero n ( 3 ≤  n  ≤ 100 ) - el número de estaciones de la línea círcular. La segunda línea contiene enteros 1 ,  2 , ...,  n ( 1 ≤  i  ≤ 100 ) - las distancias entre pares de estaciones vecinas. La tercera línea contiene dos números enteros s y t ( 1 ≤  s ,  t  ≤  n ) - los números de las estaciones, entre las que se necesita para encontrar la distancia más corta. Estos números pueden ser los mismos.
Los números de las líneas están separadas por simples espacios.
Salida
Imprimir un único número - la longitud del camino más corto entre el número de estaciones de s y t .
Examples
input
4
2 3 4 9
1 3
output
5
input
4
5 8 2 100
4 1
output
15
input
3
1 1 1
3 1
output
1
input
3
31 41 59
1 1
output
0
Nota
En la primera muestra de la longitud de la trayectoria 1 → 2 → 3 es igual a 5, la longitud de la trayectoria 1 → 4 → 3 es igual a 13.
En la segunda muestra de la longitud de la trayectoria 4 → 1 es 100, la longitud de la trayectoria 4 → 3 → 2 → 1 es 15.
En la tercera muestra de la longitud de la trayectoria 3 → 1 es 1, la longitud de la trayectoria 3 → 2 → 1 es 2.
En la cuarta muestra el número de estaciones son los mismos, por lo que la distancia más corta es igual a 0.





Solución:

  • C
  • C++
  • Java
  • Python


Links:

  1. http://codeforces.com/problemset/problem/278/A

No hay comentarios.:

Publicar un comentario