-
Codeforces Round #468 (Div. 2, based on Technocup 2018 Final Round) - A - Friends Meeting코드포스(CodeForce) 2018. 8. 17. 18:06반응형
1. 문제
2. 알고리즘
키워드 - 구현
* 문제 접근
두개 입력 정수의 사이거리를 가장 적게 이동하는 최소의 수를 출력 하는 문제다.
* 문제 풀이
1. 입력 받은 두 개의 정수에서 중간(mid) 값을 찾는다.
2. 입력받은 left, right 의 값이 중간 값에 dist 를 구하여 적산 한다.
3. mid 의 값이 left, right 와 같다면 skip 한다.
mid = 8 , left 6, right 10 이라면
left = 1 + 2 -> 왼쪽에서 mid 까지 적산 되는 거리
right = 1 + 2 -> 오른쪽에서 mid 까지 적산 되는 거리
sol = 6 -> left + right 적산의 합
3. 코드
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include<iostream>#include<vector>#include<cmath>using namespace std;int main(){int n, k; cin >> n >> k;int sum = n + k;int mid = ceil((float)sum / 2);bool isMinusLeft = (n > mid);bool isMinusRight = (k > mid);int sol = 0;for (int i = 1; ; i++) {if (n == mid)break;sol += i;if (isMinusLeft)n -= 1;elsen += 1;}for (int i = 1; ; i++) {if (k == mid)break;sol += i;if (isMinusRight)k -= 1;elsek += 1;}cout << sol << endl;return 0;}cs 반응형'코드포스(CodeForce)' 카테고리의 다른 글
Educational Codeforces Round 27 - A. Chess Tourney (0) 2018.08.17 Educational Codeforces Round 26 - A. Text Volume (0) 2018.08.17 Codeforces Round #464 (Div. 2) - A - Love Triangle (0) 2018.08.17 Educational Codeforces Round 39 (Rated for Div. 2) - A. Partition (0) 2018.08.17 Educational Codeforces Round 24 - A. Diplomas and Certificates (0) 2018.08.17