알고리즘/acmicpc
4307
kwony
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;
}