QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100 Difficulty: [show] Hackable ✓

#1220. Pembunuh Naga

Statistics

Xiao D baru-baru ini menemukan sebuah permainan kecil di internet. Aturan permainannya adalah sebagai berikut:

  • Tujuan permainan adalah membunuh $n$ naga secara berurutan menurut nomor $1$ sampai $n$. Setiap naga memiliki nilai kesehatan awal $a_i$. Setiap naga juga memiliki kemampuan pemulihan: ketika menggunakannya, nilai kesehatannya bertambah sebesar $p_i$ setiap kali, sampai nilai kesehatannya tidak negatif. Naga hanya mati jika nilai kesehatannya tepat $0$ setelah serangan selesai.
  • Pada awal permainan, pemain memiliki $m$ pedang yang kekuatan serangannya diketahui. Setiap kali menghadapi naga, pemain hanya boleh memilih satu pedang. Setelah naga terbunuh, pedang tersebut menghilang, tetapi pemain memperoleh sebuah pedang baru sebagai hadiah.

Xiao D merasa permainan ini sangat membosankan, tetapi pemain yang menyelesaikannya paling cepat dapat memperoleh hak untuk mengikuti ION2018. Karena itu, Xiao D memutuskan untuk menulis sebuah robot bodoh yang akan membantunya menyelesaikan permainan. Robotnya mengikuti aturan berikut:

  • Setiap kali menghadapi naga, robot memilih pedang dengan kekuatan serangan terbesar di antara pedang yang dimilikinya saat itu yang kekuatan serangannya tidak melebihi kesehatan awal naga. Jika tidak ada pedang seperti itu, robot memilih pedang dengan kekuatan serangan terkecil.
  • Untuk setiap naga, robot menggunakan pedang yang dipilih pada langkah sebelumnya untuk menyerang naga sebanyak $x$ kali yang tetap, sehingga kesehatan naga berkurang sebesar $x \times ATK$.
  • Setelah itu, naga terus menggunakan kemampuan pemulihannya, memulihkan $p_i$ kesehatan setiap kali. Jika kesehatannya $0$ sebelum menggunakan kemampuan pemulihan atau setelah salah satu pemulihan, naga mati dan pemain melewati tahap tersebut.

Jelas bahwa jumlah serangan robot adalah kunci untuk menentukan apakah permainan dapat diselesaikan secepat mungkin. Xiao D kini mengetahui semua atribut setiap naga dan ingin mengujimu: berapakah jumlah serangan $x$ yang harus ditetapkan untuk robot agar permainan dapat diselesaikan dengan jumlah serangan sesedikit mungkin?

Jika permainan tidak dapat diselesaikan berapa pun nilai yang ditetapkan, cukup keluarkan $-1$.

Masukan

Baca data dari berkas dragon.in.

Baris pertama berisi sebuah bilangan bulat $T$, yang menyatakan banyaknya kasus uji.

Berikutnya terdapat $T$ kasus uji, masing-masing terdiri dari 5 baris.

  • Baris pertama setiap kasus uji berisi dua bilangan bulat $n$ dan $m$, yang menyatakan banyaknya naga dan banyaknya pedang awal;
  • Baris berikutnya berisi $n$ bilangan bulat positif; bilangan ke-$i$ menyatakan kesehatan awal $a_i$ naga ke-$i$;
  • Baris berikutnya berisi $n$ bilangan bulat positif; bilangan ke-$i$ menyatakan kemampuan pemulihan $p_i$ naga ke-$i$;
  • Baris berikutnya berisi $n$ bilangan bulat positif; bilangan ke-$i$ menyatakan kekuatan serangan pedang yang diperoleh sebagai hadiah setelah membunuh naga ke-$i$;
  • Baris berikutnya berisi $m$ bilangan bulat positif, yang menyatakan kekuatan serangan $m$ pedang yang dimiliki pada awalnya.

Keluaran

Tulis keluaran ke berkas dragon.out.

Keluaran terdiri dari $T$ baris.

Baris ke-$i$ berisi sebuah bilangan bulat yang menyatakan jumlah serangan minimum $x$ yang memungkinkan robot menyelesaikan permainan untuk kasus uji ke-$i$. Jika jawabannya tidak ada, keluarkan $-1$.

Contoh

Masukan 1

2
3 3
3 5 7
4 6 10
7 3 9
1 9 1000
3 2
3 5 6
4 8 7
1 1 1
1 1

Keluaran 1

59
-1

Penjelasan

Kasus uji pertama:

  • Pada awalnya, kekuatan serangan pedang yang dimiliki adalah $\{1,9,10\}$. Naga pertama memiliki kesehatan $3$, sehingga pedang berkekuatan serangan $1$ dipilih. Sebanyak $59$ serangan menimbulkan $59$ kerusakan, sehingga kesehatan naga menjadi $-56$. Setelah $14$ pemulihan, kesehatannya tepat $0$ dan naga mati.
  • Pedang berkekuatan serangan $1$ menghilang, dan sebuah pedang berkekuatan serangan $7$ diambil. Kini kekuatan serangan pedang yang dimiliki adalah $\{7,9,10\}$. Naga kedua memiliki kesehatan $5$, sehingga pedang berkekuatan serangan $7$ dipilih. Sebanyak $59$ serangan menimbulkan $413$ kerusakan, sehingga kesehatan naga menjadi $-408$. Setelah $68$ pemulihan, kesehatannya tepat $0$ dan naga mati.
  • Kini kekuatan serangan pedang yang dimiliki adalah $\{3,9,10\}$. Naga ketiga memiliki kesehatan $7$, sehingga pedang berkekuatan serangan $3$ dipilih. Sebanyak $59$ serangan menimbulkan $177$ kerusakan, sehingga kesehatan naga menjadi $-170$. Setelah $17$ pemulihan, kesehatannya tepat $0$ dan naga mati.
  • Tidak ada cara untuk menyelesaikan permainan dengan kurang dari $59$ serangan, sehingga jawabannya adalah $59$.

Kasus uji kedua:

  • Tidak ada cara yang dapat membunuh naga pertama sekaligus naga kedua, sehingga permainan tidak dapat diselesaikan dan keluarannya adalah $-1$.

Contoh 2

Lihat dragon/dragon2.in dan dragon/dragon2.ans di direktori peserta.

Subtugas

Nomor kasus uji $n$ $m$ $p_i$ $a_i$ Kekuatan serangan Batasan lain
1 $\le 10^5$ $=1$ $=1$ $\le 10^5$ $=1$ Tidak ada
2 $\le 10^5$ $=1$ $=1$ $\le 10^5$ $=1$ Tidak ada
3 $\le 10^5$ $=1$ $=1$ $\le 10^5$ $\le 10^5$ Tidak ada
4 $\le 10^5$ $=1$ $=1$ $\le 10^5$ $\le 10^5$ Tidak ada
5 $\le 10^3$ $\le 10^3$ $\le 10^5$ $\le 10^5$ $\le 10^5$ Sifat 1, Sifat 2
6 $\le 10^3$ $\le 10^3$ $\le 10^5$ $\le 10^5$ $\le 10^5$ Sifat 1, Sifat 2
7 $\le 10^3$ $\le 10^3$ $\le 10^5$ $\le 10^5$ $\le 10^5$ Sifat 1, Sifat 2
8 $=1$ $=1$ $\le 10^8$ $\le 10^8$ $\le 10^6$ Sifat 1
9 $=1$ $=1$ $\le 10^8$ $\le 10^8$ $\le 10^6$ Sifat 1
10 $=1$ $=1$ $\le 10^8$ $\le 10^8$ $\le 10^6$ Sifat 1
11 $=1$ $=1$ $\le 10^8$ $\le 10^8$ $\le 10^6$ Sifat 1
12 $=1$ $=1$ $\le 10^8$ $\le 10^8$ $\le 10^6$ Sifat 1
13 $=1$ $=1$ $\le 10^8$ $\le 10^8$ $\le 10^6$ Sifat 1
14 $=10^5$ $=10^5$ $=1$ $\le 10^8$ $\le 10^6$ Tidak ada batasan khusus
15 $=10^5$ $=10^5$ $=1$ $\le 10^8$ $\le 10^6$ Tidak ada batasan khusus
16 $\le 10^5$ $\le 10^5$ Semua $p_i$ prima $\le 10^{12}$ $\le 10^6$ Sifat 1
17 $\le 10^5$ $\le 10^5$ Semua $p_i$ prima $\le 10^{12}$ $\le 10^6$ Sifat 1
18 $\le 10^5$ $\le 10^5$ Tidak ada batasan khusus $\le 10^{12}$ $\le 10^6$ Sifat 1
19 $\le 10^5$ $\le 10^5$ Tidak ada batasan khusus $\le 10^{12}$ $\le 10^6$ Sifat 1
20 $\le 10^5$ $\le 10^5$ Tidak ada batasan khusus $\le 10^{12}$ $\le 10^6$ Sifat 1

Sifat 1 berarti: untuk setiap $i$, $a_i \le p_i$.

Sifat 2 berarti: $\operatorname{LCM}(p_i) \le 10^6$, yaitu kelipatan persekutuan terkecil semua $p_i$ tidak melebihi $10^6$.

Untuk semua kasus uji, $T \le 5$, kekuatan serangan semua senjata $\le 10^6$, dan kelipatan persekutuan terkecil semua $p_i$ adalah $\le 10^{12}$.

Petunjuk

Hasil antara yang kamu gunakan mungkin sangat besar. Perhatikan tipe variabel yang menyimpan hasil antara.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.