Dãy số
Xem dạng PDFTrong buổi học hôm nay, Trang đã được cô giáo giới thiệu một kiến thức mới về dãy số - đó chính là dãy số có quy luật. Một dãy số có ~n~ phần tử ~[a_1,a_2,\ldots,\ a_n]~ được gọi là dãy số có quy luật nếu với mọi ~i\ (1<i\le n)~ thì ~a_i=a_{i-1}+k~ và giá trị ~k~ là giá trị không đổi với mọi ~i\ (1 < i \le n)~.</p>
Tuy nhiên. do tối hôm trước thức khuya để cày phim, nên sáng hôm nay Trang thấy rất mệt mỏi và không thể tiếp thu kiến thức mới này. Thế nên cô đã quyết tâm sẽ tự mình tìm hiểu kiến thức này.
Vào buổi tối, khi Trang vừa mới tìm hiểu về dãy số quy luật thì đã đến 11h đêm, cô chuẩn bị đi ngủ. Nhưng khi chuẩn bị đi ngủ, Trang mới nhớ ra, cô cần phải làm rất nhiều bài tập về nhà mà cô giáo giao vào sáng nay. Đề bài như sau:
- Cho một dãy số có ~n~ phần tử ~[a_1,a_2,\ldots,\ a_n]~. Với mỗi phần tử ~a_i\ \ (1\le i\le n)~, Trang có thể thực hiện duy nhất một trong 3 thao tác:
- Thay giá trị ~a_i~ thành ~a_i+1~.
- Thay giá trị ~a_i~ thành ~a_i-1~.
- Giữ nguyên giá trị ~a_i~.
Yêu cầu: Tính số lượng ít nhất phần tử ~a_i~ bị thay đổi thành ~a_i+1~ hoặc ~a_i-1~ để dãy trên trở thành một dãy số có quy luật.
Tuy nhiên, sau khi làm bài xong, vẫn còn ~t~ bài tập mà Trang vẫn chưa chắc chắn lắm. Thế nên Trang đã nhờ các bạn, lập trình viên tài, hãy viết chương trình để giúp Trang kiểm tra kết quả nhé.
Input
Từ tệp văn bản DAYSO.INP
- Dòng đầu tiên: Gồm một số nguyên dương ~t\ (t\le20)~, là số bài tập Trang còn chưa chắc chắn.
- Các dòng tiếp theo là dữ liệu của ~t~ bài tập, với bài tập thứ ~i\ (1\le i\le t)~:
- Dòng thứ ~i\times2~: Gồm một số nguyên dương ~n\ (2<n\le10^5)~, là số phần tử của dãy số trong bài tập thứ ~i~.</li>
- Dòng thứ ~i\times2+1~: Gồm ~n~ số nguyên ~a_1,a_2,a_3,\ldots,\ a_n~ là các giá trị của dãy số trong bài tập thứ ~i~.
Output
Ghi ra tệp văn bản DAYSO.OUT
- Gồm ~t~ dòng, mỗi dòng gồm một số nguyên là số lượng ít nhất phần tử ~a_i~ bị thay đổi thành ~a_i+1~ hoặc ~a_i-1~ để dãy ~[a_1,a_2,\ldots,\ a_n]~ trở thành một dãy số có quy luật. Nếu không thể biến đổi thành dãy số có quy luật, ghi ra ~-1~.
Sample Input 1
3
3
2 2 2
4
9 6 1 -5
3
8 9 3
Sample Output 1
0
3
-1
Giải thích
- Ở bài tập đầu tiên, dãy đã là dãy số có quy luật với ~k=0~;
- Ở bài tập thứ 2, ta sẽ biến dãy thành ~[10,5,0,-5]~, khi đó nó là dãy số có quy luật với ~k=-5~.
Bình luận