---
# System prepended metadata

title: 多處理機平行程式設計 作業5-1說明

---

# 多處理機平行程式設計 作業5-1說明


## 題目:任務排程



### 題目敘述

給定 $n$ 個任務，每個任務 $j$ 都有 $p_j ∈ Z$<sup>+</sup> 個單位時間的計算需求與權重 $w_j ∈ (0, 10]$。此外，每個任務 $j$ 都有釋放時間（released time）$r_j ∈ Z$<sup>+</sup>，代表任務 $j$ 只能在 $r_j$ 之後才能開始執行。計算需求 $p_j$ 與釋放時間 $r_j$ 均為正整數。任務之間是可搶佔的（preemption），代表優先順序比較低的任務會被比較高的任務搶佔計算資源。請決定此 $n$ 個任務在一台機器上的排程順序使得最小化總權重完成時間 $∑_
j w_jC_j$，其中 $Cj$ 為任務 $j$ 在此機器上的完成時間。請使用$OpenMP$ 來增加求解速度。



 
### 輸入輸出說明



第一列只有一個數字 $n$，代表有$n$個任務，接下來$n$列都有三個數字，分別代表每個任務的單位時間的計算需求$p_j$、釋放時間$r_j$以及權重$w_j$




例如：
![image](https://hackmd.io/_uploads/rJxzF4y8a.png)




資料範圍：
* $1 \leq n \leq 11$
* $1 \leq p_j \leq 25$
* $1 \leq r_j < 25$
* $1 \leq w_j \leq 25$


直接輸出答案即可，如以下格式
![image](https://hackmd.io/_uploads/H1Ht5N1U6.png)








### 繳交格式

在Github上傳一個程式碼檔案<font color="#f00">以及對應的Makefile檔案</font>，程式碼檔名為 學號_hw5_1 
例如：p12345678_hw5_1.c p12345678_hw5_1.cpp都可
Makefile就叫Makefile

