4307

알고리즘/acmicpc 2015. 10. 17. 22:58 Posted by 아는 개발자

처음에는 '와 이 문제 장난아니다. 어떻게 풀어야되냐, 감이안온다 ㄷㄷ' 라 생각했는데 자세히 생각해보니 매우 간단한 문제임을 발견했다.


두 개미가 부딪히면 다른 방향으로 이동한다. 이건 둘이 교차한다는 의미랑 같다. 어차피 충돌하면 한 개미는 왼쪽으로 이동하고 다른 개미는 오른쪽으로 이동한다. 그러면 이건 교차한다고 봐도 무방하다. 


결국 막대기를 벗어나는 개미들 중에 가장 오랜 시간이 걸리는 애를 고르면 되는 문제..


 
#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;
}
728x90

'알고리즘 > acmicpc' 카테고리의 다른 글

11049  (0) 2016.07.24
2229  (0) 2016.07.24
4307  (0) 2015.10.17
1577  (0) 2015.10.16
1946  (0) 2015.10.16
2590  (0) 2015.10.15