給定 n 組成對的數 ai , bi,每組數表示一個 ai 行 ai 列的如圖所示的三角形:
其中 bi 為 0 時左邊較低,為 1 時右邊較低。
將每組數對應的三角按數的順序從左到右拼接起來。
現給出 m 組詢問 li ,ri , vi,對每組詢問求最低高度 hi 使得 li 到 ri 列之間的高度在 hi 以內的 o 的數量大于等于 vi。
輸入的第一行包含兩個整數 n, m,用一個空格分隔。
接下來 n 行,每行包含兩個整數 ai , bi,用一個空格分隔。
接下來 m 行,每行包含三個整數 li ,ri , vi,相鄰兩個整數之間用一個空格分隔。
輸出 m 行,每行包含一個整數 hi ,依次表示每次詢問對應的答案。如果不存在這樣的 hi,請輸出 ?1。
6 6 3 0 4 0 2 1 3 1 5 0 1 1 3 9 12 3 9 13 3 4 4 14 16 7 9 15 12 1 18 42
2 3 3 3 3 -1
第一個詢問對應的范圍如圖所示:
對于 30% 的評測用例,1 ≤ n, m, ai ≤ 500;
對于 50% 的評測用例,1 ≤ n, m, ai ≤ 5000;
對于所有評測用例,1 ≤ n, m ≤ 200000 ,1 ≤ ai ≤ 106 ,0 ≤ bi ≤ 1 , 1 ≤ li ≤ ri ≤ ∑ ai ,1 ≤ vi ≤ 1018。