METEORS - Meteors

no tags 

Byteotian Interstellar Union (BIU) has recently discovered a new planet in a nearby galaxy. The planet is unsuitable for colonisation due to strange meteor showers, which on the other hand make it an exceptionally interesting object of study.

The member states of BIU have already placed space stations close to the planet's orbit. The stations' goal is to take samples of the rocks flying by. The BIU Commission has partitioned the orbit into $m$ sectors, numbered from $1$ to $m$, where the sectors $1$ and $m$ are adjacent. In each sector there is a single space station, belonging to one of the $n$ member states.

Each state has declared a number of meteor samples it intends to gather before the mission ends. Your task is to determine, for each state, when it can stop taking samples, based on the meteor shower predictions for the years to come.


The first line of the standard input gives two integers, $n$ and $m$ ($1 \le n,m \le 300\,000$), separated by a single space, that denote, respectively, the number of BIU member states and the number of sectors the orbit has been partitioned into.

In the second line there are $m$ integers $o_i$ ($1 \le o_i \le n$), separated by single spaces, that denote the states owning stations in successive sectors.

In the third line there are $n$ integers $p_i$ ($1 \le p_i \le 10^9$), separated by single spaces, that denote the numbers of meteor samples that the successive states intend to gather.

In the fourth line there is a single integer $k$ ($1 \le k \le 300\,000$) that denotes the number of meteor showers predictions. The following $k$ lines specify the (predicted) meteor showers chronologically. The $i$-th of these lines holds three integers $l_i, r_i, a_i$ (separated by single spaces), which denote that a meteor shower is expected in sectors $l_i,l_{i+1},\ldots,r_i$ (if $l_i \le r_i$) or sectors $l_i,l_{i+1},\ldots,m,1,\ldots,r_i$ (if $l_i > r_i$), which should provide each station in those sectors with $a_i$ meteor samples ($1 \le a_i \le 10^9$).


Your program should print $n$ lines on the standard output. The $i$-th of them should contain a single integer $w_i$, denoting the number of shower after which the stations belonging to the $i$-th state are expected to gather at least $p_i$ samples, or the word NIE (Polish for no) if that state is not expected to gather enough samples in the foreseeable future.


For the input data:

3 5
1 3 2 1 3
10 5 7
4 2 4
1 3 1
3 5 2

the correct result is:


hide comments
shikhar23: 2022-11-08 14:10:54

Just use a break statement while incrementing count to avoid using ull if you want :)

zagymbef: 2019-01-11 17:15:36

You guys can look through my code a little bit ^^: [[spoiler /!\ read the notes below]]

Last edit: 2019-01-14 13:50:28
Mostafa Saad: 2018-11-04 15:18:33

In case you can't read the text, here is the original problem:

Last edit: 2018-11-04 15:20:39
userhacker_1: 2018-03-19 22:02:11

test-cases is true..... suppose we have k=300000 and n=1 and m=300000 and in all k query we have l=1 and r=300000 and a(i)=10^9 ... now i want know sum of all sector for one BIU member state in last k=300000 so ans is =
300000 * 300000 * 10^9 = 9*10^19 .. probability you do like this in your approach in one level of getting sum in binary-search .....

Last edit: 2018-03-19 22:02:57
sinh_ngu_10i: 2018-01-26 03:15:48

Is test case wrong? Why long long got WA?

lukamercep: 2017-08-30 10:53:36

long long int -> WA
unsigned long long -> AC

Jose Guerra Carmenate: 2017-02-16 05:44:19

The text of the problem has errors !!! Please check it!!!

mohammadjavad: 2016-11-02 19:42:32

why my solution in O(n log^2 n) get TLE :(

Last edit: 2016-11-02 19:42:45
:D: 2016-10-12 01:20:52

It can be solved in O((m+k)*log(k)) (assuming n <= m).

nib: 2016-09-29 21:04:17

Beware that values can overflow long long int.

Added by:Krzysztof Lewko
Time limit:0.101s-1.540s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64
Resource:XVIII POI 3rd stage