█████████ ████ ███░░░░░███ ░░███ ███ ░░░ ██████ ███████ ██████ ██████ ░███ ███░░███ ███░░███ ███░░███ ███░░███ ░███ ░███ ░███░███ ░███ ░███████ ░███ ░███ ░░███ ███░███ ░███░███ ░███ ░███░░░ ░███ ░███ ░░█████████ ░░██████ ░░████████░░██████ ░░██████ ░░░░░░░░░ ░░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░░

Envío 5017

Problema 0xd6 - Camino más corto de la Tortuga en un arreglo circular

  • Autor: cams2692
  • Fecha: 2021-10-06 20:17:56 UTC (Hace más de 2 años)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.004 s 5 KBi
#2
Correcto
0.003 s 4 KBi
#3
Correcto
0.006 s 4 KBi
#4
Correcto
0.004 s 4 KBi
#5
Correcto
0.004 s 5 KBi
#6
Correcto
0.005 s 4 KBi
#7
Correcto
0.006 s 5 KBi
#8
Correcto
0.004 s 3 KBi
#9
Correcto
0.004 s 5 KBi
#10
Correcto
0.004 s 4 KBi
#11
Correcto
0.004 s 4 KBi
#12
Correcto
0.005 s 4 KBi
#13
Correcto
0.004 s 4 KBi
#14
Correcto
0.005 s 4 KBi
#15
Correcto
0.005 s 5 KBi
#16
Correcto
0.004 s 4 KBi
#17
Correcto
0.004 s 5 KBi
#18
Correcto
0.007 s 5 KBi
#19
Correcto
0.004 s 5 KBi
#20
Correcto
0.005 s 4 KBi
#21
Correcto
0.004 s 4 KBi
#22
Correcto
0.009 s 4 KBi
#23
Correcto
0.005 s 4 KBi
#24
Correcto
0.004 s 4 KBi
#25
Correcto
0.007 s 4 KBi
#26
Correcto
0.016 s 4 KBi
#27
Correcto
0.003 s 4 KBi
#28
Correcto
0.012 s 5 KBi
#29
Correcto
0.004 s 4 KBi
#30
Correcto
0.003 s 4 KBi
#31
Correcto
0.005 s 6 KBi
#32
Correcto
0.004 s 4 KBi
#33
Correcto
0.005 s 4 KBi
#34
Correcto
0.004 s 5 KBi
#35
Correcto
0.005 s 7 KBi
#36
Correcto
0.004 s 4 KBi
Puntos totales: 100 / 100

Código

package main

import (
	"bufio"
	"fmt"
	"math/big"
	"os"
	"strings"
)

func main() {
	reader := bufio.NewReader(os.Stdin)

	numbersS, _ := reader.ReadString('\n')
	numbersS = strings.ReplaceAll(numbersS, "\n", "")

	numbers := strings.Split(numbersS, " ")

	n, _ := new(big.Int).SetString(numbers[0], 0)
	n2, _ := new(big.Int).SetString(numbers[0], 0)
	x, _ := new(big.Int).SetString(numbers[1], 0)
	x2, _ := new(big.Int).SetString(numbers[1], 0)
	y, _ := new(big.Int).SetString(numbers[2], 0)
	y2, _ := new(big.Int).SetString(numbers[2], 0)

	var resultReverse *big.Int

	if y.Cmp(x) < 1 {
		resultReverse = x.Sub(x, y)
	} else {
		resultReverse = x.Add(x, n.Sub(n, y))
	}

	var resultNotReverse *big.Int
	if y2.Cmp(x2) > -1 {
		resultNotReverse = y2.Sub(y2, x2)
	} else {
		resultNotReverse = y2.Add(y2, n2.Sub(n2, x2))
	}
	if resultNotReverse.Cmp(resultReverse) == -1 {
		fmt.Println(resultNotReverse)
	} else {
		fmt.Println(resultReverse)
	}
}