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

#1616

그룹찾기(Cow Patterns) 1초 128MB

문제

농부 창호의 소들 중에서 K (1≤K≤25,000) 마리의 그룹은 말썽을 자주 피운다. 

일렬로 소들을 세울 때, 말썽쟁이들이 특정 순서로 서게 된다.

 

이 그룹을 찾아내기 위해서 농부 창호는 총 N (1≤N≤100,000)마리의 소들을 일렬로 세웠다. 

당신은 창호를 도와 K 마리의 연속된 소들이 말썽 그룹인지 확인해야한다.

 

창호는 그의 소들의 점의 수 1... S로 소들을 구분해 놓았다. (1≤S≤25). 

창호는 정확히 어느 소들이 말썽을 부리는 그룹인지는 기억하지 못하지만 소들의 점의 수는 기억한다. 

그는 말썽을 부리는 그룹 소들의 점의 수대로 순위를 매겼다.

 

1 4 4 3 2 1

 

이 예에서는, 연속된 6마리들 중에서 첫 번째와 여섯 번째가 가장 적은 점을 갖고 있고 

다음으로 다섯 번째, 다음으로 네 번째, 그리고 두 번째, 세 번째가 가장 적은 점을 갖고 있는 그룹을 찾고자 한다.

만약 소들의 점의 수가 다음과 같다면

 

5 6 2 10 10 7 3 2 9

 

2 10 10 7 3 2 부분은 위의 패턴을 만족한다. 

패턴을 만족하는 그룹들을 찾아야한다.


입력

입력은 다음의 형식으로 입력된다. 첫 번째 줄 : N, K, S가 입력된다. 두 번째 줄부터 N+1번째 줄 까지 : i+1줄은 i번 소의 점의 수를 의미한다. N+2번째 줄부터 N+K+1번째 줄 까지: i+N+1줄은 패턴에서 i번째의 순위를 의미한다.

출력

출력은 다음의 형식을 따른다. 첫 번째 줄: 패턴이 맞는 위치의 수를 출력한다. 두 번째 줄부터 B+1번째 줄까지: 패턴이 맞는 그룹의 시작 위치들을 출력한다.

예제1

입력
9610

5
6
2
10
10
7
3
2
9
1
4
4
3
2
1
출력
1

3

출처

USACO 2005 December Contest gold1

역링크