CF2248E Excuse for Breaks

Description

You are given three integers $ n $ , $ m $ , and $ d $ , and two arrays $ p_1, p_2, \ldots, p_m $ and $ r_1, r_2, \ldots, r_m $ . The array $ p $ is strictly increasing. For a binary array $ a $ of any positive finite length (so $ |a| $ need not equal $ n $ ), define its value $ f(a) $ using the following pseudocode: ``` function f(a): v := 0 c := 0 for i from 1 to length(a): if a[i] is equal to 1: v := v + d c := c + 1 else: c := 0 for j from 1 to m: if c is equal to p[j]: v := v + r[j] if c is equal to n: c := 0 return v ``` Here, ":=" denotes the assignment operation.Let $ I(a) $ denote the array $ [1,1,\ldots,1] $ of length $ |a| $ . In other words, $ I(a) $ consists of $ |a| $ ones. Determine whether there exists a binary (consisting only of zeros and ones) array $ a $ such that $ f(a) \gt f(I(a)) $ .

Input Format

Each test contains multiple test cases. The first line contains the number of test cases $ t $ ( $ 1 \le t \le 2000 $ ). The description of the test cases follows. The first line of each test case contains three integers $ n $ , $ m $ , and $ d $ ( $ 1 \le n \le 10^9 $ , $ 0 \le m \le 2000 $ , $ 0 \le d \le 10^9 $ ). The $ i $ -th of the next $ m $ lines contains two integers $ p_i $ and $ r_i $ ( $ 1 \le p_i \le n $ , $ 1 \le r_i \le 10^9 $ ). The array $ p $ is strictly increasing. It is guaranteed that the sum of $ m $ over all test cases does not exceed $ 2000 $ .

Output Format

For each test case, output "YES" if such a binary array $ a $ exists, and "NO" otherwise. You can output the answer in any case (upper or lower). For example, the strings "yEs", "yes", "Yes", and "YES" will be recognized as positive responses.

Explanation/Hint

In the first test case, you can choose $ a = [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1] $ . The array $ a $ contains $ 16 $ ones, so the total contribution of $ d $ is $ 16 \cdot 3 = 48 $ . Its runs of consecutive ones have lengths $ 9 $ , $ 4 $ , and $ 3 $ . The corresponding total rewards are $ 32 $ , $ 15 $ , and $ 14 $ , respectively. Therefore, $ f(a) = 48 + 32 + 15 + 14 = 109 $ . Moreover, $ I(a) $ consists of $ 18 $ ones. During the computation of $ f(I(a)) $ , they form three complete blocks of $ 6 $ ones, and each block contributes $ 6 \cdot 3 + 5 + 9 + 1 + 3 = 36 $ . Thus, $ f(I(a)) = 3 \cdot 36 = 108 $ . Since $ f(a) \gt f(I(a)) $ , the answer is "YES". In the second test case, no binary array $ a $ satisfies $ f(a) \gt f(I(a)) $ , so the answer is "NO".