標題:
2025成大初賽_排序
[打印本頁]
作者:
may
時間:
2025-4-18 12:11
標題:
2025成大初賽_排序
排序
問題敘述
輸入一個正整數n(1≤n≤100),代表有一個陣列a,包含n個整數,且每項絕對
值≤230,但你並不會知道陣列裡的值是甚麼。
你可以做的操作有加減乘除,所有操作都是建立在採二補數的32bit有號整數上,
另外有25個臨時變數能用,分別是b∼z,初始值都是0。
請輸出一個整數代表你要做幾次操作,接著有那麼多行字串代表你所做的操作,使
得操作後整個陣列a會被由小到大排序。
輸出+c1b代表c=a[1]+b,第一個字是+−∗/其中一個,後面的三項可以是變數
或陣列的某項,若是變數的某項就輸出一個介於1∼n的數字,陣列編號從1開始,輸
出不得包含+−∗/b∼z1∼n及空白和換行以外的字。
輸入說明
共一個整數n。
測試資料範圍
• 1≤n≤100。
輸出說明
每筆操作一行,操作第一項是+−∗/,第二、三、四項可以是b∼z 其中一個字,
或是一個1∼n的數字,四項之間皆以一個空格隔開。
每行皆應該恰好有三個空白,分隔四項,行首行尾皆不得有空白。
最後一個操作後應有換行符號,也就是最後得有一個空行。
總操作次數不得超過⌈2.376∗1642.531.64253⌉。(超過代表大於,而非大於等於,⌈x⌉ 代
表第一個大於等於x的整數。)
1
範例測資
範例輸入1
2
範例說明1
範例輸出1
4
+ b 1 2
/ c 1 2
* c d c- 1 b 2
二補數的 32 bit 有號整數,代表的是用 32 個 bit 來表示一個數字,且最高 bit
為 0 代表非負,1 代表是負數,其餘的 31 個 bit 用來儲存數字的大小。若我們
規定最低位是第 0 位,最高位是第 31 位,則對於一個非負整數來說,他的值是
30
∑
i=0
第i bit 的值 (只會是0或1)×2i,而對於一個負數來說,他的量值相當於全部的
bit 都取反 (0 變 1,1 變0) 後當作正數看待得到的值再加1。
或者可以當作gnuc/c++ 的正常int,意思相同。
所有溢位皆按照gnuc/c++,除法向零取整。
範例測資中的操作是
b=a[1]+a[2]
c=0*(a[1]+a[2])
a[1]=b-a[2]
根據我們的感性通靈,我們假裝他是對的。
(注意到當a[1] > a[2] 時這會獲得 WA,所以這只是一個輸出格式範例而已,輸出這
個拿不到分。)
2
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/)
Powered by Discuz! 7.2