반응형
https://www.acmicpc.net/problem/1459
1459번: 걷기
세준이는 학교에서 집으로 가려고 한다. 도시의 크기는 무한대이고, 도시의 세로 도로는 모든 정수 x좌표마다 있고, 가로 도로는 모든 정수 y좌표마다 있다. 세준이는 현재 (0, 0)에 있다. 그리고 (
www.acmicpc.net
어디서 비슷한 문제 풀었던거 같은데 아마 프로그래머스인가보다.
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
long long X, Y, line, cross, res = 0;
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin >> X >> Y >> line >> cross;
if (line * 2 < cross)
res = (X + Y) * line;
else if (cross < line) { // 일자로 이동할 때 대각선이 직선보다 더 빠르면
int maxCross = min(X, Y);
int remainDist = X - maxCross + Y - maxCross;
if (remainDist % 2) { // 홀수이면
res += line;
remainDist--;
}
res += maxCross * cross + remainDist * cross;
}
else {
int maxCross = min(X, Y);
res = maxCross * cross + (X - maxCross) * line + (Y - maxCross) * line;
}
cout << res;
}
반응형
'<algorithm> > 백준' 카테고리의 다른 글
백준 20310 타노스 c++ (1) | 2023.10.24 |
---|---|
백준 1911 흙길 보수하기 c++ (1) | 2023.10.14 |
백준 2879 코딩은 예쁘게 c++ (1) | 2023.10.09 |
백준 1026 보물 c++ (1) | 2023.10.05 |
백준 2217 로프 c++ (0) | 2023.10.05 |