APCS202111 第3題生產線

上傳作業:http://203.68.236.9/problem/c0202

zerojudge網址  https://zerojudge.tw/ShowProblem?problemid=g597

有 n 台機器排成一直線, 每一個機器都有一個數值 t[i], 代表該台機器要產出一單位的資料需要 t[i] 單位的時間 接下來有 m 個工作要完成, 每一個工作都需要位置在 [l[i],r[i]] 的機器各生產出 w[i] 單位資料 現在你可以調換 n 台機器的順序, 目標是使得這 m 個工作做完的總時間要最小

輸入說明

先輸入兩個正整數 n 和 m 代表有 n 台機器和 m 個工作 接下來有 m 行, 每行有三個正整數 l[i], r[i] 和 w[i] 代表第 i 個工作需要編號從 l[i] 到 r[i] 的機器完成, 並且需要各產生出 w[i] 單位的資料 最後一行包含 n 個正整數 t[1],t[2],⋯t[n] 

數字範圍 

1≤n,m≤200000 

1≤w[i]≤100 

1≤t[i]≤100 

1≤l[i]≤r[i]≤n

輸出說明

輸出最小的總花費時間


輸入範例

5 1

2 4 1

1 2 3 4 5

10 3

2 5 6

3 6 4

7 8 1

1 2 3 4 5 6 7 8 9 10

輸出範例

6

117


解題策略

差分、排序、貪婪

第一組測資

5 1

2 4 1

1 2 3 4 5


生產資料量  1 1 1

時間           1 2 3 4 5

機器              1 2 3

          1*1+1*2+1*3=6


組測資

10 3

2 5 6

3 6 4

7 8 1

1 2 3 4 5 6 7 8 9 10



生產資料量     6 10 10 10  4  1  1

時間             1 2  3   4   5   6   7  8

機器                 4 1   2    3   5  6  7

          10*1 + 10*2 + 10*3 + 6*4 + 4*5 + 1*6 + 1*7 =117


使用差分與累加計算每一個時間點的生產資料量,生產資料量最大的時間點安排t[i]最小的機器,將生產資料量由大到小排序,t[i]由小到大排序,依序相乘累加。