페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#3405

공놀이 1s 64MB

문제

학생들이 일직선으로 서서 공놀이를 하고 있다. 

어떤 학생들은 팀을 이루어 팀원끼리 서로 공을 던지고 받으며 놀고 있다. 

팀을 이루지 않고 혼자 공을 바닥에 튀기면서 노는 학생들도 있다.

어떤 두 팀은 공을 던지는 경로가 겹치기 때문에, 두 공이 공중에서 서로 충돌하기도 한다. 

이 경우 충돌한 공이 어디로 튈지 모르기 때문에 아주 위험하다. 그림 1과 같은 경우이다. 

 

 

그림에서 1번 학생과 4번 학생이 한 팀이고, 3, 5, 6번 학생이 또 다른 팀이다. 2번 학생처럼 혼자 공을 튀기면서 노는 학생도 있다. 

그림을 보면, 1번 학생이 4번 학생에게 던진 공이, 5번 학생이 3번 학생에게 던진 공과 충돌하였다. 이 경우는 위험한 경우이다.

공놀이를 하는 학생들의 상황이 주어졌을 때, 위험한 경우인지 알아내는 프로그램을 작성하라 

 


입력

맨 첫 줄에 테스트케이스의 수인 T가 주어진다.(T는 1이상 10이하이다.) 첫 줄에 학생들의 수인 N이 주어진다. N은 1이상 5,000이하이다. 둘째 줄에, N개의 정수가 공백을 사이에 두고 주어지며, 이는 왼쪽부터 오른쪽까지, 각 학생의 팀을 나타낸다. 같은 정수를 가진 학생은 같은 팀이며, 혼자 공놀이를 하는 학생도 1인 팀으로 묘사된다. 예를 들어, 그림 1의 경우 [1 2 3 1 3 3]으로 나타낼 수 있다. 둘째 줄에 주어지는 정수는 1이상 100,000이하이다. 전체 입력데이터의 10%에 있어서, N은 1이상 10이하이다. 전체 입력데이터의 30%에 있어서, N은 1이상 200이하이다.

출력

T줄에 걸쳐, 각 테스트케이스 별로, 현재 상황이 위험하면 DANGEROUS, 위험하지 않으면 SAFE를 출력한다.

예제

3

6
1 2 1 3 4 3
6
1 2 3 1 2 3
4
1 2 2 1
SAFE

DANGEROUS
DANGEROUS

출처

ohjtgood
로그인해야 코드를 작성할 수 있어요.