CF2189B.The Curse of the Frog

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

在一条无限的数轴上,青蛙起始于 00 号点。经过多年的冥想修炼,青蛙掌握了 nn 种独特的魔法跳跃方式。第 ii 种跳跃方式可以让它向前跳不超过 aia_i 个单位。换句话说,如果它当前在整数点 kk,那么跳跃后可以落在从 kkk+aik+a_i 的任意一个整数点上。

但魔法总是要付出代价的;青蛙被施加了诅咒。在每次第 bib_i 次尝试(即第 bib_i 次、第 2bi2b_i 次、第 3bi3b_i 次等)使用第 ii 种跳跃方式之前,它会被迫后退 cic_i 个单位!也就是说,若它在点 kk,则会先到达 kcik-c_i,之后才能跳到 kcik-c_ikci+aik-c_i+a_i 间的任意整数点。

青蛙的目标是通过跳跃最小化遭遇回退的次数,最终到达 xx 号点。请你帮助青蛙 —— 求出它到达目标点至少需要经历多少次回退,若无法到达 xx 点,则输出 1-1

输入格式

每组测试数据包含多个测试用例。第一行包含测试用例个数 tt1t1041 \le t \le 10^4)。每组测试用例描述如下:

每个测试用例的第一行包含 22 个整数 nnxx1n1051 \leq n \leq 10^51x10181 \leq x \leq 10^{18})——青蛙可用跳跃类型数量及目标点位置。

接下来的 nn 行,每行描述一种跳跃方式,第 ii 行包含 33 个整数 aia_ibib_icic_i1ai,bi,ci1061 \leq a_i, b_i, c_i \leq 10^6)。

保证所有测试用例的 nn 之和不超过 10510^5

输出格式

对于每个测试用例,若青蛙可以到达 xx 点,输出最少需要经历的回退次数;若无法到达,则输出 1-1

输入输出样例

  • 输入#1

    6
    1 1
    3 3 3
    1 7
    4 2 5
    2 4
    1 2 3
    2 2 4
    5 8
    12 1 11
    10 1 4
    1 1 3
    1 2 5
    2 1 7
    1 1000000000000000000
    1000000 4 654321
    1 10
    2 2 1

    输出#1

    0
    1
    -1
    2
    298892990032
    3

说明/提示

在第一个测试用例中,青蛙可以向前跳 11 个单位,最终到达 11 点。因此答案为 00

在第三个测试用例中,可以证明青蛙无法到达 44 点。

在第四个测试用例中,青蛙可以按以下方式到达 88 点:首先用第 11 种跳跃方式跳 1212,再用第 44 种跳跃方式跳 11,再用第 22 种跳跃方式跳 1010。位置变化为 0(回退)1112(回退)280 \rightarrow \text{(回退)} -11 \rightarrow 1 \rightarrow 2 \rightarrow \text{(回退)} -2 \rightarrow 8

在第六个测试用例中,青蛙可以按以下方式到达 1010 点:跳 6622 单位,再跳 1111 单位。位置变化为 02(回退)135(回退)468(回退)79100 \rightarrow 2 \rightarrow \text{(回退)} 1 \rightarrow 3 \rightarrow 5 \rightarrow \text{(回退)} 4 \rightarrow 6 \rightarrow 8 \rightarrow \text{(回退)} 7 \rightarrow 9 \rightarrow 10

首页