Thứ Năm, 28 tháng 7, 2016

Rupsa and the Game

Công chúa Rupsa thấy một người bạn đang chơi một trò chơi đặc biệt. Trò chơi diễn ra như sau:
·          N+1 số xuất hiện tuần tự ( mỗi số tại một thời điểm ) từ A0 đến AN.
·          Bạn phải ghi những con số vào một tờ giấy, A0 được viết đầu tiên. Những số khác được viết theo quy tắc quy nạp – Sau khi Ai-1 số đã được ghi trong một hàng, thì Ai có thể được viết ở hai đầu của hàng. Nghĩa là, bạn viết A0 đầu tiên, sau đó A1 có thể được viết ở bên trái hoặc bên phải để tạo thành A0A1 hoặc A1A0, và cứ tiếp tục như vậy.
·          Ai phải được viết trước Aj, với mọi i < j.
·          Ở bước bạn viết số Ai (i>0), điểm số của bạn sẽ được tăng lên một lượng bằng tích của Ai và số cạnh nó. (Chú ý rằng bất cứ bước nào thì chỉ có một số duy nhất cạnh nó giống như bạn viết số cuối cùng).
·          Tổng số điểm của trò chơi là số điểm bạn có được sau khi viết tất cả N + 1 số.
·          Công chúa Rupsa muốn tìm ra tổng số điểm của tất cả các cách chơi khác nhau. Hai cách chơi khác nhau nếu sau khi viết N + 1 số, chúng ta đọc từ trái sáng phải, sẽ xuất hiện những vị trí i mà số ở vị trí i của 2 cách chơi khác nhau. Nhưng bởi vì công chúa đã tìm ra tình yêu đích thực của mình, một hoàng tử ếch, và rất nóng lòng gặp hoàng tử, bạn hãy giúp công chúa giải quyết nó càng sớm càng tốt. Bởi kết quả có thể rất lớn nên chỉ cần in kết quả lấy dư cho 109 + 7.
Dữ liệu vào:
+ Dòng đầu tiên chứa một số tự nhiên T, thể hiện số lượng test.
+ Dòng đầu của mỗi test chứa 1 số tự nhiên N.
+ Dòng thứ hai chứa N + 1 số tự nhiên từ A0 đến AN
Dữ liệu ra:
+ Với mỗi test, in ra một dòng chứa một số là kết quả tìm được
Ràng buộc:
+ 1 T 10
+ 1 N 105
+ 1 Ai 109
Subtasks
Subtask #1: 1 ≤ N ≤ 10 (10 điểm)
Subtask #2: 1 ≤ N ≤ 1000 (20 điểm)
Subtask #3: Như ràng buộc gốc (70 điểm)
Ví dụ:
Input:
1
1
1 2
Output:
4
Giải thích: 2 cách chơi: A0A1 có số điểm là 2A1A0 cũng có số điểm là 2. Do đó đáp án là 2+2= 4