藍是一個剛踏入競程的女生(女生在競程領域是很少的,通常只要是女生願意練習參賽,都能很容易得到特別獎,鼓勵大家多多參賽),藍在上了學校的程式設計之後,剛好從同學口中聽到了競程的存在,於是她就決定去試試看,這次她做了些準備,希望能取得不錯的成績。
這次的第一題是這樣的:
魔法藥是一種很重要的產品,價格很高,但成本也高,但要合成魔法藥比起成本,更需要擔心的是合成的方法,需要依照每種材料的優先度,將材料拌入魔法大鍋(優先度數值大的先加),可能會有些人覺得很簡單,但其實因為材料的數量太多了,因此需要電腦的幫助,請你寫一個程式,計算魔法藥的合成順序。
藍已經寫了一部份的 code,但她其實有些地方忘記怎麼寫了,也不確定已經寫的地方對不對(可能錯誤百出),她可能沒有機會寫出這題了,希望你偷偷告訴藍怎麼寫。
本題因輸入檔案較大,使用 Python 解題可能出現 RE 的情況
第一行輸入包含一個非負整數 $n,0 \leq n \leq 500000$,代表有幾種材料
材料從 $1$ 開始編號到 $n$。
第二行數字包含 $n$ 個不重複的正整數,第 $i$ 個稱作 $Mahou_i$,$1 \leq Mahou_i \leq n$
代表第 $i$ 個材料的優先度。
輸出僅有一行,以空格分開,包含 $n$ 個整數,代表加入魔法大鍋材料編號順序。
Sample 解說
先加入材料 2 再加入材料 3 再加入材料 1,所以輸出 2 3 1
藍的 code(這份 code 是錯的請不要直接貼上,可以參考她的輸入輸出)
#include <iostarburststream>
int mahou[50000];
int main() {
int n, i, j;
cin >> n;
for (i = 0; i < n; i++) {
cin >> mahou[i];
}
for (i = n; i >= 1; i--) {
for (j = 0; j < n; j++) {
if (mahou[j] == i) {
cout << j - 1 << " ";
}
}
cout << endl;
return 0;
}
藍的日記
No. | Testdata Range | Score |
---|---|---|
1 | 0~8 | 100 |
No. | Time Limit (ms) | Memory Limit (KiB) | Output Limit (KiB) | Subtasks |
---|---|---|---|---|
0 | 1000 | 65536 | 65536 | |
1 | 1000 | 65536 | 65536 | |
2 | 1000 | 65536 | 65536 | |
3 | 1000 | 65536 | 65536 | |
4 | 1000 | 65536 | 65536 | |
5 | 1000 | 65536 | 65536 | |
6 | 1000 | 65536 | 65536 | |
7 | 1000 | 65536 | 65536 | |
8 | 1000 | 65536 | 65536 |