Informatica Online Judge

  Ants (Small) [0557 / 022D]

Time Limit(Test case) : 1000 (ms)
Number of users who solved : 194   Total Tried : 208


The Champion of this Problem (C++) : N/A
My Best Submission (C++) : N/A

[]

Background

길이가 L(cm)인 막대 위에 N마리의 개미가 초당 1cm의 속도로 걸어가고 있다.

개미는 장대의 끝에 도착하면 장대 아래로 떨어진다.

또한 장대 위는 좁아서 개미가 서로 지나갈 수 없이 반대방향으로 돌아가야만 한다.

문제는 장대위에 N마리의 개미의 위치가 주어진다.

모든 개미가 장대위에서 떨어지는 최대시간과 최소시간을 구하는 프로그램을 작성하시오.
(개미의 초기 이동 방향에 따라 모든 개미가 떨어지는 시간은 달라진다.)

* 모든 개미는 반드시 1초에 1cm씩 이동한다.
* 두 개미가 충돌하는 순간 바로 반대방향으로 이동하기 시작하며 방향전환 시간은 0이다.
* 모든 개미의 출발시 이동방향은 알 수 없다.

Input

첫 번째 줄에 장대의 길이 L과 개미의 수 N이 공백으로 구분되어 입력된다.
두 번째 줄에 각 개미의 초기위치의 좌표가 주어진다.

* L의 범위는 3~10000인 자연수이다. (만약 막대의 길이가 5라면 0~5까지의 좌표를 가진다.)
* N의 최대값은 10을 넘지않는 자연수이다.

Output

모든 개미가 떨어지는 최소시간과 최대시간을 공백으로 구분되어 입력된다.

IO Example

입력
10 3
2 6 7

출력
4 8

*설명 : 첫 번째 개미가 좌, 두 번째, 세 번째 개미가 우로가면 4초후에 모든 개미가 떨어진다.
모든 개미가 오른쪽으로 가면 8초후에 모든 개미가 떨어진다.

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]