Gửi bài giải
Điểm:
0,30 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C++, Pascal, Python
Do đã quá quen với dãy fibonacci, hôm nay, chúng ta hãy cùng tìm hiểu về dãy tribonacci.
Số tribonacci thứ ~i~ sẽ có công thức truy hồi như sau: ~f[i] = f[i-1] + f[i-2] + f[i-3]~ nếu ~i > 3~, ngược lại ~f[i] = i~ nếu ~i \le 3~.
Cho ~n~ số tribonacci đầu tiên và một số ~k~ (~k \le n~), hay tìm một dãy con bất kì (không nhất thiết phải liên tiếp) của dãy ~n~ số tribonacci này sao cho tổng của các phần tử trong dãy con đó chia hết cho ~k~.
Input
- Gồm một dòng chứa số nguyên dương ~n~ và số nguyên dương ~k~ ~(1 \le k \le n \le 10^5)~
Output
- Dòng đầu in ra số ~q~ là độ dài của dãy con thỏa mãn tìm được, nếu không tồn tại in ra ~-1~.
- Dòng thứ hai in ra ~q~ chỉ số của dãy con tìm được.
- Nếu có nhiều hơn một dãy con thỏa mãn, in ra bất kì kết quả nào.
Subtask
- ~30\%~ số test có ~n \le 20~.
- ~40\%~ số test có ~n \le 2000~.
- ~30\%~ số test còn lại có ~n \le 10^5~.
Sample Test
Input:
5 4
Output:
2
2 4
Giải thích:
- ~5~ phần tử đầu tiên của dãy tribonacci là: 1 2 3 6 11
- Chọn ra phần tử thứ ~2~ và ~4~ có tổng bằng: ~2+6 = 8~ chia hết cho ~4~.