Alex y la IOI
¡Alex clasificó a la IOI! y se está preparando para viajar, él quiere saber cuál es la forma más barata de llegar a la IOI.
Alex conoce aeropuertos. Todos los aeropuertos están localizados en una línea recta y cada uno está enumerado de
a
(de izquierda a derecha). La casa de Alex está situada cerca del aeropuerto con id
y el lugar de la olimpiada está situado cerca del aeropuerto con id
. Es posible que la casa de Alex y el lugar de la olimpiada estén cerca del mismo aeropuerto (es decir, que
sea igual a
también es posible).
Para llegar a la olimpiada Alex puede volar entre cualquier par de aeropuertos cualquier cantidad de veces, pero él tiene que empezar su ruta en el aeropuerto y terminarla en el aeropuerto
.
Cada aeropuerto pertenece a una de dos compañías. El costo del vuelo del aeropuerto al aeropuerto
es
si ambos aeropuertos pertenecen a la misma compañía y es
si pertenecen a compañías distintas.
Calcula el costo mínimo que Alex tiene que pagar para llegar a la olimpiada.
Entrada
La primera línea de la entrada contiene los enteros ,
y
.
La segunda y última línea contiene una cadena de caracteres de tamaño , la cual consiste solamente de los caracteres
y
. Si el
-ésimo caracter en la cadena es
el aeropuerto pertenece a la primera compañía, en otro caso el aeropuerto pertenece a la segunda compañía.
Salida
En una única línea imprima el costo mínimo que Alex tiene que pagar para llegar a la olimpiada.
Ejemplos
Entrada 1
4 1 4
1010
Salida 1
1
Entrada 2
5 5 2
10110
Salida 2
0
Explicación de los ejemplos
En el primer ejemplo Alex puede volar al aeropuerto primero y pagar
(porque los aeropuertos pertenecen a compañías distintas) y luego volar del aeropuerto
al aeropuerto
gratis (ambos aeropuertos pertenecen a la misma compañía). Por tanto el costo total es
, esto es óptimo.
En el segundo ejemplo Alex puede volar directamente del aeropuerto al
gratis (ambos aeropuertos pertenecen a la misma compañía), por lo que el costo total es
.
Comments
This comment is hidden due to too much negative feedback. Show it anyway.
Ahí te estas complicando mucho, con un par de condicionales ya se resuelve el problema, ademas vi tu solucion y recuerda que si son de compañias diferentes el costo es el modulo de i-j, pero en tu codigo al ponerlo todo en un vector diferente provoca que los indices sean distintos, ademas como un dato el lower_bound solo funciona en un arreglo/vector ordenado.
Vale, entiendo. Muchas gracias bro
This comment is hidden due to too much negative feedback. Show it anyway.
La razón es que estás leyendo la secuencia de 0s y 1s como un arreglo de bool, pero estos caracteres son dados sin espacios entre ellos. Deberías leer la secuencia como un string, o un arreglo de char.
This comment is hidden due to too much negative feedback. Show it anyway.