時間限制:10000ms
單點時限:1000ms
記憶體限制:256mb
在 warcraft iii 之冰封王座中,毀滅者是不死族打三本後期時的乙個魔法飛行單位。
毀滅者的核心技能之一,叫做魔法吸收(absorb mana):
現在讓我們來考慮下面的問題:
假設你擁有 n 個魔法單位,他們從左到有站在一行,編號從 1 到 n。 每個單位擁有三項屬性:
現在你操縱乙個毀滅者,有 m 個操作,t
lr,表示時刻 t,毀滅者對所有編號從 l 到 r 的單位,使用了魔法吸收。操作按照時間順序給出,計算毀滅者一共吸收了多少法力。
輸入資料的第一行有乙個整數 n(1 ≤ n ≤105) — 你的魔法單位的數目。
接下來的 n 行,每行有三個整數 s
i, m
i, r
i(0 ≤ s
i ≤ m
i ≤ 105, 0 ≤ r
i ≤ 105) 描述乙個魔法單位。
接下來一行又乙個整數 m(1 ≤ m ≤ 105), — 操作的數目。
接下來的 m 行,每行描述乙個操作 t, l, r(0 ≤ t ≤ 109, 1 ≤ l ≤ r ≤ n),t 非降。
輸出一行乙個整數表示毀滅者一共吸收了多少法力。
樣例輸入
5
0 10 1
0 12 1
0 20 1
0 12 1
0 10 1
25 1 5
19 1 5
樣例輸出
83
using system;
using system.collections.generic;
public class program
}public static int absorbmagic(listmagics,int t,int l,int r)
}for(int i = l;i<=r;i++)
return magicvalue;
}static void main(string args)
m = convert.toint32(console.readline());
for(int i=0;i
console.writeline(currentmagicvalue);}}
C 資料結構篇(堆疊
菸快沒有了,別人都說煙有害,但對與我可是必不可少的,呵呵。抽一根煙程式就寫出來了,好了,再加把勁,我們再完成堆疊,其實堆疊和線性表沒什麼大的區別,堆疊其實是一種特殊的線性表,使用push 壓輸入資料,pop 彈出資料,才用,先進後出的原則,就這麼簡單。前面已經寫好了list 類,在這裡我們可以呼叫它...
C 資料結構篇(佇列類)
在實現堆疊類之後,我們來實現佇列類,其實佇列也是鍊錶的擴充套件,它其實是一種特殊的鍊錶,如堆疊一樣,它和堆疊的不同在於,堆疊採用的是先進後出原則,而對列採用的是先進先出原則。什麼是先進後出呢?在日常生活中也到處可見它,比如 買火車票,大家都要排隊,先來的先買票,後來的在後面排隊,在隊伍中隨便插入是不...
C 資料結構篇(鍊錶類)
首先定義結點型別,定義了,前乙個指標域,後乙個指標域,如下 using system namespace list 前乙個public listnode previous 後乙個public listnode next 值public int value using system namespace...