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 BR 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

x
+
cmd
0 0 5 6

Output

x
+
cmd
11

#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

x
+
cmd
0 0 5 6

Output

x
+
cmd
11

#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

x
+
cmd
0 0 5 6

Output

x
+
cmd
11

#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

x
+
cmd
0 0 5 6

Output

x
+
cmd
11
Advertisements

Demonstration


Previous
#2436 Beecrowd Online Judge Solution 2436 Robô Solution in C, C++, Java, Js and Python
Next
#2438 Beecrowd Online Judge Solution 2438 Quadradinho de 8 Solution in C, C++, Java, Js and Python