CF1650F.Vitaly and Advanced Useless Algorithms

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

Vitaly enrolled in the course Advanced Useless Algorithms. The course consists of nn tasks. Vitaly calculated that he has aia_i hours to do the task ii from the day he enrolled in the course. That is, the deadline before the ii -th task is aia_i hours. The array aa is sorted in ascending order, in other words, the job numbers correspond to the order in which the assignments are turned in.

Vitaly does everything conscientiously, so he wants to complete each task by 100100 percent, or more. Initially, his completion rate for each task is 00 percent.

Vitaly has mm training options, each option can be used not more than once. The ii th option is characterized by three integers: ei,tie_i, t_i and pip_i . If Vitaly uses the ii th option, then after tit_i hours (from the current moment) he will increase the progress of the task eie_i by pip_i percent.

For example, let Vitaly have 33 of tasks to complete. Let the array aa have the form: a=[5,7,8]a = [5, 7, 8] . Suppose Vitaly has 55 of options: [e1=1,t1=1,p1=30][e_1=1, t_1=1, p_1=30] , [e2=2,t2=3,p2=50][e_2=2, t_2=3, p_2=50] , [e3=2,t3=3,p3=100][e_3=2, t_3=3, p_3=100] , [e4=1,t4=1,p4=80][e_4=1, t_4=1, p_4=80] , [e5=3,t5=3,p5=100][e_5=3, t_5=3, p_5=100] .

Then, if Vitaly prepares in the following way, he will be able to complete everything in time:

  • Vitaly chooses the 44 -th option. Then in 11 hour, he will complete the 11 -st task at 8080 percent. He still has 44 hours left before the deadline for the 11 -st task.
  • Vitaly chooses the 33 -rd option. Then in 33 hours, he will complete the 22 -nd task in its entirety. He has another 11 hour left before the deadline for the 11 -st task and 44 hours left before the deadline for the 33 -rd task.
  • Vitaly chooses the 11 -st option. Then after 11 hour, he will complete the 11 -st task for 110110 percent, which means that he will complete the 11 -st task just in time for the deadline.
  • Vitaly chooses the 55 -th option. He will complete the 33 -rd task for 22 hours, and after another 11 hour, Vitaly will complete the 33 -rd task in its entirety.

Thus, Vitaly has managed to complete the course completely and on time, using the 44 options.

Help Vitaly — print the options for Vitaly to complete the tasks in the correct order. Please note: each option can be used not more than once. If there are several possible answers, it is allowed to output any of them.

输入格式

The first line of input data contains an integer TT ( 1T1041 \le T \le 10^4 ) —the number of input test cases in the test.

The descriptions of the input test case follow.

The first line of each test case description contains two integers nn and mm ( 1n,m1051 \le n,m \le 10^5 ) —the number of jobs and the number of training options, respectively.

The next line contains nn numbers a1,a2,,ana_1, a_2, \dots, a_n ( 1ai1091 \le a_i \le 10^9 ) — the time before the deadline of job ii . The array values — are non-decreasing, that is a1a2ana_1 \le a_2 \le \dots \le a_n .

The following mm lines contain triples of numbers ei,ti,pie_i, t_i, p_i ( 1ein1 \le e_i \le n , 1ti1091 \le t_i \le 10^9 , 1pi1001 \le p_i \le 100 ) — if Vitaly chooses this option, then after tit_i hours he will increase the progress of the task eie_i by pip_i percent. The options are numbered from 11 to mm in order in the input data.

It is guaranteed that the sum of n+mn+m on all test cases does not exceed 21052 \cdot 10^5 .

输出格式

For each test case, print on the first line the number kk , meaning that for kk of options, Vitaly will be able to complete each task by 100100 percent or more on time. The options should not be repeated. Or print -1 if Vitaly is unable to complete all tasks in time.

If there is an answer, on the next line print kk of different integers from 11 to mm — the numbers of the options in the order you want. If there is more than one answer, it is allowed to print any of them.

输入输出样例

  • 输入#1

    5
    3 5
    5 7 8
    1 1 30
    2 3 50
    2 3 100
    1 1 80
    3 3 100
    1 5
    51
    1 36 91
    1 8 40
    1 42 83
    1 3 45
    1 13 40
    2 9
    9 20
    2 8 64
    2 7 64
    1 20 56
    2 8 76
    2 20 48
    1 2 89
    1 3 38
    2 18 66
    1 7 51
    3 2
    7 18 33
    1 5 80
    3 4 37
    2 5
    569452312 703565975
    1 928391659 66
    1 915310 82
    2 87017081 92
    1 415310 54
    2 567745964 82

    输出#1

    4
    1 4 3 5 
    3
    2 4 5 
    4
    6 7 1 2 
    -1
    4
    2 4 3 5
  • 输入#2

    3
    3 9
    20 31 40
    1 9 64
    3 17 100
    3 9 59
    3 18 57
    3 20 49
    2 20 82
    2 14 95
    1 8 75
    2 16 67
    2 6
    20 36
    2 2 66
    2 20 93
    1 3 46
    1 10 64
    2 8 49
    2 18 40
    1 1
    1000000000
    1 1000000000 100

    输出#2

    -1
    4
    3 4 1 5 
    1
    1
首页