D. Teleportation

λ¬Έμ œμ„€λͺ…

a, b, x, y의 μ’Œν‘œκ°€ μ£Όμ–΄μ§€λŠ”λ° 우리의 λͺ©ν‘œλŠ” a-> b둜 κ°€λŠ” κ²ƒμž…λ‹ˆλ‹€. 이 λ•Œ x->y, ν˜Ήμ€ y->xμ’Œν‘œλ‘œ μˆœκ°„μ΄λ™μ„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 λ•Œ a->b둜 κ°€λŠ” μ΅œλ‹¨κ±°λ¦¬λ₯Ό κ΅¬ν•˜λŠ” 것이 λ¬Έμ œμž…λ‹ˆλ‹€.

ν…”λ ˆν¬νŠΈλŠ” ν•œλ²ˆλ§Œ μ“°λŠ”κ²Œ κ°€μž₯ μ΄λ“μž…λ‹ˆλ‹€.

증λͺ…은 κ·€λ₯˜λ²•μœΌλ‘œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

그럼 이제 경우의 μˆ˜λŠ” 맀우 μ μ–΄μ§‘λ‹ˆλ‹€.

  1. a->b둜 λ°”λ‘œ κ°€κΈ°

  2. x->y둜 텔포

  3. y->x둜 텔포

λ”°λΌμ„œ μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	// your code goes here
	int a, b, x, y;
	cin >> a >> b >> x >> y;
	if(x > y){
		swap(x, y);
	}
	printf("%d", min(min(abs(a-x) + abs(b-y), abs(b-a)), abs(a-y) + abs(b-x)));
	return 0;
}

Last updated

Was this helpful?