왜건 분류
Problem
<사업부>
스택을 사용하여 숫자 시퀀스를 정렬할 수 있는지 확인하는 데 필요합니다.
기차가 1번 선로에서 막다른 골목에 도착했습니다(사진 참조). 기차에서 한 대 또는 여러 대의 첫 번째 차량을 한 번에 풀고 막 다른 골목으로 가져올 수 있습니다 (원하는 경우 전체 기차를 한 번에 막 다른 골목으로 가져올 수도 있습니다). 그런 다음 일부 마차를 트랙 2쪽으로 가져 가십시오. 그런 다음 마차 몇 대를 막 다른 골목으로 가져오고 마차 일부를 트랙 2쪽으로 다시 옮길 수 있습니다. 1번 트랙에서 막다른 골목까지 한 번만 주행한 다음 2번 트랙에서 막다른 골목을 한 번 떠났습니다. 2번 트랙에서 막다른 골목에 진입하거나 1번 트랙에서 막다른 골목을 벗어나는 것은 금지되어 있습니다. 막다른 골목에 들어가지 않고는 경로 1에서 경로 2로 갈 수 없습니다.
열차가 처음에 어떤 순서로 가는지는 알려져 있습니다. 표시된 작업을 사용하여 기차 차량을 순서대로 이동해야 합니다(먼저 첫 번째, 두 번째 등, 막다른 곳에서 트랙 2를 따라 이동하는 기차의 머리부터 계산). 가능한지 판단하는 프로그램을 작성하세요.
입력
숫자 입력 N
— 열차의 차량 수(\(1<=N<=2000\)). 다음은 1번 선로를 달리는 열차의 선두부터 막다른 길까지의 차량 번호입니다. 자동차는 1
에서 N
까지의 자연수로 번호가 매겨지며 각 번호는 정확히 한 번만 나타납니다.
출력
기차가 막다른 골목에서 2번 선로로 이동할 때 기차 머리부터 세어 1
에서 N
까지 순서대로 가도록 할 수 있습니까? 가능하면 YES
메시지를 표시합니다. 가능하지 않으면 NO
를 인쇄합니다.
예
<헤드>
<일>#일>
입력 |
출력 |
참고 |
것>
<몸>
1 |
3
3 2 1
| 예 |
열차 전체를 막다른 골목으로 가져간 다음 완전히 2번째 선로로 이동해야 합니다 |
2 |
<사업부>4사업부>
4 1 3 2
|
예
|
먼저 두 대의 마차를 막다른 골목으로 가져와야 합니다. 그 중 하나는 막다른 골목에 남고 두 번째는 — 2차선으로 나가서 막다른 골목까지 차 2대를 더 끌고 막다른 골목에 서 있는 차 3대를 2차선으로 빼내세요 |
3 |
3
2 3 1
| 아니오 |
|
테이블>