문제1304--마을을 지켜라

1304: 마을을 지켜라

시간제한 : 1.000 sec  메모리제한 : 256 MB

문제 설명

바야흐로 국밥의 계절, 영원히 평화로울 것만 같았던 병천 마을에 갑자기 마왕이 쳐들어왔습니다.
마왕은 병천을 단순히 파괴시켜 버릴 수도 있었지만, 그보단 있는 그대로 지배하고 싶었습니다.
그러던 중 마왕은, 병천 마을의 각 집에는 특별한 정신력이 깃들어 있는 것을 알게 되었습니다.
이 정신력을 마을 사람들로부터 충분히 빼앗으면 마을은 결국 마왕의 지배하에 넘어갑니다.
(지배를 위해선, 마왕이 빼앗은 정신력이 주민들에게 남아있는 정신력보다 많아야 합니다.)

마왕의 속셈을 알게 된 마을 사람들은 최선을 다해 마을을 지키기로 마음먹었습니다.
하지만 정신력을 빼앗거나(공격) 지키는 건(수비) 쉬운 일이 아니라서 아래와 같은 제약이 따릅니다.
(아래의 제약을 제외하곤, 마을 사람들과 마왕은 항상 본인들에게 가장 유리한 최선의 선택을 합니다.)
  • 마왕과 마을 사람들은 번갈아가며 공격과 수비를 합니다.
    • 처음엔 무조건 마을 사람들이 먼저 수비합니다.
  • 마을 사람들이 이미 지키기 시작한 집은 마왕이 공격할 수 없습니다.
  • 마왕이 이미 공격한 집은 마을 사람들이 수비할 수 없습니다.
  • 마왕과 마을 사람들은 공격 또는 수비하지 않은 집들 중 가장 바깥쪽에 있는 집들만 공격 또는 수비할 수 있습니다.
    • 병천 마을의 집들은 일렬로 이루어져 있습니다.

마왕은 병천 마을을 지배하지 못할 바엔 파괴하지 않고 다음을 기약하며 돌아갑니다.
마을 사람들이 마왕으로부터 병천의 평화를 지킬 수 있을지 알려주세요.

입력 설명

첫 줄에는 테스트케이스 T(1 ≤ T ≤ 500)가 주어집니다. 각 테스트케이스는 두 줄로 주어집니다. 첫 줄에는 마을의 집 수 N(1 ≤ N ≤ 2000)이 주어집니다. 둘째 줄에는 각 집에 깃든 N개의 정신력 S(1 ≤ S ≤ 107)가 주어집니다.

출력 설명

마을 사람들이 병천 마을을 지켜낼 수 있으면 "One for all"을, (모두는 하나(마을)를 위해)
마왕이 병천 마을을 침략하는데 성공하면 "All for one"을 출력해 주세요. (모든것은 마왕을 위해)

입력 예시 Copy

3
5
0 5 0 9 2
3
9 8 2
7
10 1 9 6 4 100 110

출력 예시 Copy

All for one
One for all
One for all

도움

0 5 0 9 2
위 예시의 경우에는 다음과 같은 순서로 공격 / 수비가 이루어집니다.
괄호 표기는 공격 / 수비가 완료된 집을 의미합니다.

행동 선택 이후 상황
수비 2 0 5 0 9 (2)
공격 9 0 5 0 (9 2)
수비 0 0 5 (0 9 2)
공격 5 0 (5 0 9 2)
수비 0 (0 5 0 9 2)

마왕이 빼앗은 정신력은 14로, 마을 사람들이 지켜낸 정신력 2보다 많으므로
마을은 마왕의 손아귀에 넘어갑니다. ㅜ.ㅜ
(마을 사람들은 어떤 선택을 해도 정신력을 2보다 많이 지켜낼 수 없습니다.)

출처/분류