Xét một vòng lặp đơn (không rẽ nhánh, không lồng nhau) với biến điều khiển i chạy từ 1 đến N (bước nhảy 1; nếu N=0 vòng lặp không chạy lần nào). Thân vòng lặp có m biến phụ y1,…,ym; biến yk được định nghĩa lại mỗi lần lặp (tại thời điểm i hiện tại của lần lặp đó) theo công thức tuyến tính: yk=ak⋅i+bk với ak,bk là hằng số nguyên cho trước, không đổi trong suốt vòng lặp. Quy ước giá trị "trước vòng lặp" (tại i=0, khi vòng lặp chưa chạy lần nào) là yk=bk.
Yêu cầu:
INVARIANT. Nếu ak=0, yk là biến quy nạp (induction variable) — in INDUCTION.In ra m dòng theo thứ tự k=1,…,m: y{k} INVARIANT gia_tri hoặc y{k} INDUCTION gia_tri. Dòng cuối cùng: ADDS=tong_so_phep_cong (tổng trên tất cả biến INDUCTION).
Input:
3 3
0 5
2 1
-1 10
Output:
y1 INVARIANT 5
y2 INDUCTION 7
y3 INDUCTION 7
ADDS=6
Dòng đầu: N,m (0≤N≤109, 1≤m≤1000). m dòng tiếp theo, mỗi dòng "ak bk" (∣ak∣,∣bk∣≤106, số nguyên, có thể âm hoặc bằng 0).
In m dòng "y{k} INVARIANT val" hoặc "y{k} INDUCTION val" theo thứ tự k, rồi dòng cuối "ADDS=tổng".
Ví dụ:
Đầu vào:
3 3
0 5
2 1
-1 10
Đầu ra:
y1 INVARIANT 5
y2 INDUCTION 7
y3 INDUCTION 7
ADDS=6
Đầu vào:
0 2
3 4
0 7
Đầu ra:
y1 INDUCTION 4
y2 INVARIANT 7
ADDS=0
Đang tải editor...