시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
벼가 (N)개의 지점에 일직선으로 심어져 있다. 밤사이 여러 마리의 청개구리가 왼쪽에서 논으로 들어와 오른쪽으로 나갔다. 각 지점에는 그 지점을 밟은 청개구리 수가 남아 있다.
한 마리의 청개구리는 하나의 양의 정수 (d)를 뛰는 간격으로 정한다. (d)는 6 이하이다. 처음 밟은 지점이 왼쪽에서 (s)번째라면 (1 le s le d)이고, 그 뒤에는 (s+d, s+2d, s+3d, dots) 번째 지점만 차례로 밟는다. 논 밖으로 나가기 전에 적어도 두 지점을 밟아야 하므로 (s+d le N)이어야 한다. 중간에 방향이나 간격을 바꾸지 않고, 벼가 없는 곳은 밟지 않는다.
각 지점을 밟은 횟수가 주어졌을 때, 가능한 청개구리 수의 최솟값과 그때 각 청개구리의 첫 지점과 간격을 구하라.
첫째 줄에 벼가 심어진 지점의 개수 (N)이 주어진다. ((2 le N le 200))
둘째 줄에는 각 지점을 밟은 청개구리 수가 가장 왼쪽 지점부터 차례대로 주어진다. 인접한 수는 공백 하나로 구분된다.
최소 청개구리 수가 100 이하인 답이 존재하는 입력만 주어진다.
첫째 줄에 밤사이 지나간 청개구리 수의 최솟값 (M)을 출력한다.
다음 (M)개의 줄에는 각 청개구리가 처음 밟은 지점 (s)와 뛰는 간격 (d)를 공백으로 구분해 출력한다. (s)는 왼쪽에서 몇 번째 지점인지를 뜻한다.
최소가 되는 방법이 여러 가지라면 그중 하나를 출력하면 된다.