Algorithm
Problem Name: 2 AD-HOC - beecrowd | 2437
Problem Link: https://www.beecrowd.com.br/judge/en/problems/view/2437
Distância de Manhattan
Por OBI - Olimpíada Brasileira de Informática 2013 Brazil
Timelimit: 5
Maria é uma moradora de Nlogópolis, uma cidade na Nlogônia que tem uma característica muito interessante: todas as ruas da cidade ou são orientadas no sentido norte-sul ou são orientadas no sentido leste-oeste. Isso significa que, dadas duas ruas, ou elas são paralelas ou elas são perpendiculares entre si.
Todas as ruas da cidade são de mão dupla e é possível seguir em qualquer direção em um cruzamento.
Agora Maria está atrasada para uma reunião e precisa de sua ajuda. Dadas as coordenadas iniciais de Maria e da reunião, determine o número mínimo de cruzamentos que Maria deve atravessar para chegar ao seu destino. Esse número inclui o cruzamento onde ocorrerá a reunião mas não inclui a posição inicial de Maria.
Entrada
A única linha da entrada contém quatro inteiros, Xm, Ym, Xr, Yr (0 ≤ Xm, Ym, Xr, Yr ≤ 1000), indicando as coordenadas de Maria (Xm, Ym) e da reunião (Xr, Yr). O ponto de partida de Maria nunca será igual ao local da reunião, ou seja, pelo menos uma das coordenadas será diferente.
Saída
Seu programa deve imprimir uma única linha contendo um único inteiro: o número mínimo de cruzamentos que Maria precisa atravessar para chegar até o local da reunião.
Exemplos de Entrada | Exemplos de Saída |
0 0 5 6 |
11 |
Code Examples
#1 Code Example with C Programming
Code -
C Programming
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
unsigned short xMaria, yMaria;
unsigned short xReuniao, yReuniao;
scanf("%hu %hu %hu %hu", &xMaria, &yMaria, &xReuniao, &yReuniao);
printf("%hu\n", abs(xReuniao - xMaria) + abs(yReuniao - yMaria));
}
Copy The Code &
Try With Live Editor
Input
Output
#2 Code Example with C++ Programming
Code -
C++ Programming
#include <cstdio>
#include <cstdlib>
int main() {
int x1, y1, x2, y2;
scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
printf("%d\n", abs(x1 - x2) + abs(y1 - y2));
return 0;
}
Copy The Code &
Try With Live Editor
Input
Output
#3 Code Example with Javascript Programming
Code -
Javascript Programming
const { readFileSync } = require("fs")
const [Xm, Ym, Xr, Yr] = readFileSync("/dev/stdin", "utf8")
.split(" ", 4)
.map((value) => Number.parseInt(value, 10))
const Xdist = Math.abs(Xm - Xr)
const Ydist = Math.abs(Ym - Yr)
console.log(Xdist + Ydist)
Copy The Code &
Try With Live Editor
Input
Output
#4 Code Example with Python Programming
Code -
Python Programming
xm, ym, xr, yr = [int(x) for x in input().split()]
print(abs(xm-xr)+abs(ym-yr))
Copy The Code &
Try With Live Editor
Input
Output