시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
3 초 | 128 MB | 1268 | 319 | 202 | 27.446% |
옛날 아주 먼 옛날, 한 마을에 용이 살고 있었습니다. 그 마을에는 호수가 여러개 있었는데, 그 호수들은 모두 물이 들어 있었습니다. 이 마을에는 가끔 비가 내립니다. 신기하게도 비는 한 호수 위에서만 내린다고 합니다. 비가 내렸을 때 그 호수가 비어있다면 그 호수는 다시 물로 꽉 차지만, 만약 호수에 물이 있는데 다시 비가 내릴경우 호수가 넘쳐 흘러서 엄청난 재앙을 불러 일으킬 수 있었습니다. 용은 비가 오지 않는 날에는 하루에 한개의 호수에 있는 물을 전부 먹어 치울 수 있었지만, 비가 오는 날에는 물을 마시지 못했습니다. 용은 신비한 능력을 가지고 있어서 언제 어디서 비가 올지를 정확히 알아낼 수 있었기 때문에, 비가 오기 전 그 호수의 물을 전부 먹어치울 수 있었고 마을사람들은 행복하게 살았답니다.
그런데 어느 여름날, 장맛비가 찾아왔습니다. 용은 언제 어디서 호수의 물을 먹을지를 계산하려고 했지만, 엄청난 양의 비에 당황한 나머지 실패하고 말았답니다. 여러분이 용을 도와서 재앙으로부터 마을을 지켜주세요!
첫 번째 줄에는 테스트 케이스의 수 Z가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 두 개의 자연수 n,m이 주어진다. n은 호수의 개수이고, m은 호수에 비가 내리는 날의 수이다. (n ≤ 106, m ≤ 106)
각 테스트 케이스의 두 번째 줄에는 m개의 정수 t1, t2, t3,...,tm 이 주어진다. (0 ≤ ti ≤ n) 만약 ti가 자연수라면 i번째 날에는 ti번 호수에서 비가 내림을 의미한다. ti가 0이라면 i번째 날에는 비가 오지 않음을 의미하고, 이 날은 용이 호수로부터 물을 마실 수 있다. 용은 비가 오는 날에는 물을 마시지 않는다는 사실을 기억하라.
첫 번째 줄에 만약 재앙을 막을 수 있다면 YES를, 막을 수 없다면 NO를 출력한다.
만약 YES인 경우에는 두 번째 줄에 ℓ개의 자연수 또는 0을 출력한다. (이때 ℓ은 일기예보에서 주어진 0의 개수, 즉 비가 오지 않는 날의 수이다.) 각 자연수는 용이 물을 마셔야 할 호수의 번호를 나타내며, 만약 0일 경우는 아무 호수에서도 물을 마시지 않음을 의미한다. (아무리 용이라도 빈 호수에서는 물을 마실 수 없기 때문이다.)
4 2 4 0 0 1 1 2 4 0 1 0 2 2 3 0 1 2 2 4 0 0 0 1
NO YES 1 2 NO YES 0 1 0