문제

문제 링크

어떻게 접근할 것인가?

  • 이거는 아이디어가 중요하다.
  • 개미가 부딪히고 방향을 전환할 것이므로 사실상 한쪽 끝에서 제일 먼 개미가 제일 늦게 나올 것이다.
  • 그래서 끝에서 가까운 개미가 먼저 나오고 가까운 끝 말고 반대에서 가장 먼 개미가 제일 늦게 나온다.

코드

#include <string>
#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;

int main() {
    int test_num, l, n;
    cin >> test_num;
    for(int i = 0; i < test_num; i++){
        cin >> l >> n;
        int mid = l / 2;
        int shortest = 0, longest = 0, temp = 0;
        for(int i = 0; i < n; i++){
            cin >> temp;
            if(temp > mid) {
                if(shortest < l - temp) shortest = l - temp;
                if(longest < temp) longest = temp;
            }
            else{
                if(shortest < temp) shortest = temp;
                if(longest < l - temp) longest = l - temp;
            }
        }
        cout << shortest << " " << longest << endl;
    }
}