-
4307알고리즘/acmicpc 2015. 10. 17. 22:58
처음에는 '와 이 문제 장난아니다. 어떻게 풀어야되냐, 감이안온다 ㄷㄷ' 라 생각했는데 자세히 생각해보니 매우 간단한 문제임을 발견했다.
두 개미가 부딪히면 다른 방향으로 이동한다. 이건 둘이 교차한다는 의미랑 같다. 어차피 충돌하면 한 개미는 왼쪽으로 이동하고 다른 개미는 오른쪽으로 이동한다. 그러면 이건 교차한다고 봐도 무방하다.
결국 막대기를 벗어나는 개미들 중에 가장 오랜 시간이 걸리는 애를 고르면 되는 문제..
#include<cstdio> int main(){ int tc; scanf("%d", &tc); while(tc--){ int len, n, loc, min=0, max=0; scanf("%d %d", &len, &n); while(n--){ scanf("%d", &loc); int cur_min, cur_max; if(loc > len-loc) { cur_min = len-loc; cur_max = loc; } else{ cur_min = loc; cur_max = len-loc; } if(cur_min > min) min = cur_min; if(cur_max > max) max = cur_max; } printf("%d %d\n", min, max); } return 0; }