만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

꾹꾹이 풀기

시간 제한1초메모리 제한1024 MB

요약
왼발 힘 L과 오른발 힘 R이 주어질 때, 각 어깨 지점이 정확히 S_i의 힘을 받도록 두 발의 위치와 반복 횟수를 정합니다. 불가능하면 -1을 출력합니다.
난이도

보통10점 중 6점

유형
수학, 정수론, 구현
정답자
아직 제출이 없습니다

문제

운동선수 제이의 휴식을 돕기 위해 토끼 니키는 고양이 동영상을 보며 꾹꾹이를 연습했다. 연습하면서 니키는 자신의 왼발 힘이 LL이고 오른발 힘이 RR이라는 것을 알게 되었다.

니키는 이번에 제이의 어깨를 안마하려고 한다. 제이의 어깨 부위는 총 NN군데이며, 왼쪽에서부터 i+1i+1번째(0≤i<N0 \leq i < N) 어깨 부위에는 SiS_i만큼의 힘을 주어야 한다.

니키는 제이의 Pl+1P_l + 1번째 어깨 부위에 왼발을, Pr+1P_r + 1번째 어깨 부위에 오른발을 올려서 꾹꾹이를 할 수 있다. 니키가 양발의 위치를 바꿔 가며 꾹꾹이를 할 때, 제이의 i+1i+1번째 어깨 부위를 왼발로 AiA_i번, 오른발로 BiB_i번 누른다면 Ai⋅L+Bi⋅R=SiA_i \cdot L + B_i \cdot R = S_i를 만족해야 한다.

꾹꾹이를 정확하게 해야 한다는 것을 확인하고 당황한 니키가 여러분에게 꾹꾹이를 어떻게 해야 하는지 물어보았다. 니키를 도와 꾹꾹이를 하는 방법을 구하는 프로그램을 작성하여라.

입력

첫 번째 줄에 니키가 눌러야 할 제이의 어깨 부위의 수 NN, 니키의 왼발 힘 LL, 니키의 오른발 힘 RR이 주어진다.

두 번째 줄에는 제이의 i+1i+1번째 어깨 부위를 풀어주기 위해 필요한 강도 SiS_i에 해당하는 NN개의 정수가 주어진다.

출력

니키가 적절하게 꾹꾹이를 할 수 없으면 -1을 출력한다.

적절하게 꾹꾹이를 할 수 있다면, 첫 번째 줄에 니키의 꾹꾹이 전략에서 단계의 수 KK (0≤K≤10⋅N0 \leq K \leq 10 \cdot N)를 출력한다.

두 번째 줄부터 KK개의 줄에는 각 단계의 꾹꾹이 전략을 Pl Pr C (0≤Pl<Pr<N0 \leq P_l < P_r < N; 1≤C≤1091 \leq C \leq 10^9) 형식으로 출력한다. 이는 니키가 제이의 Pl+1P_l + 1번째 부위에 왼발을, Pr+1P_r + 1번째 부위에 오른발을 올려 꾹꾹이를 CC번 반복한다는 의미이다.

가능한 정답이 여러 가지라면 그중 아무거나 출력한다. KK를 최소화할 필요는 없다.

예제2

  1. 예제 1

    입력
    3 3 4
    6 7 8
    
    예상 출력
    3
    0 1 1
    0 2 1
    1 2 1
    
  2. 예제 2

    입력
    4 3 4
    6 7 8 9
    
    예상 출력
    -1