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
Xuwei J: 2012-04-25 06:13:39

With Constant optimization,O(n*sqrt(n)) can get AC.

shihanyuan: 2012-04-10 07:17:28

Why my O(n*sqrt(n)) can't get AC,but I have passed it on;
I think only O(n*log(n)*log(n)) can solve it!

Last edit: 2012-04-10 07:17:56
Krzysztof Lewko: 2011-12-30 19:50:34

Three test data has been added,
tests wasn't full,
sorry for that
Time limit has been raised up a little.

And xilinx, your solution receive AC on spoj, after raised timelimit, but on contest limitations ( 64 MB of memory ) it receive MLE :)

Last edit: 2011-12-30 19:54:24
[Rampage] Blue.Mary: 2011-12-30 17:52:36

The obvious O(nlog^3n) algorithm won't pass. Be careful.

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