給定乙個單鏈表,請編寫程式將鍊錶元素進行分類排列,使得所有負值元素都排在非負值元素的前面,而 [0,k][0,k] 區間內的元素都排在大於 kk 的元素前面。
但每一類內部元素的順序是不能改變的。
例如:給定鍊錶為 18→7→-4→0→5→-6→10→11→-2,kk 為 1010,則輸出應該為 -4→-6→-2→7→0→5→10→18→11。
輸入格式
第一行包含第 11 個結點的位址;結點總個數,即正整數 nn;以及正整數 kk。
結點的位址是 55 位非負整數,null 位址用 −1 表示。
接下來有 n 行,每行格式為:
address data next
其中 address 是結點位址;data 是該結點儲存的資料,為 [−105,105][−105,105] 區間內的整數;next 是下一結點的位址。
題目保證給出的鍊錶不為空。
輸出格式
按鍊錶從頭到尾的順序輸出重排後的結果鍊錶,其上每個結點佔一行,格式與輸入相同。
資料範圍
1≤n≤1051≤n≤105,
1≤k≤10001≤k≤1000
輸入樣例:
00100 9 10
23333 10 27777
00000 0 99999
00100 18 12309
68237 -6 23333
33218 -4 00000
48652 -2 -1
99999 5 68237
27777 11 48652
12309 7 33218
輸出樣例:
33218 -4 68237
68237 -6 48652
48652 -2 12309
12309 7 00000
00000 0 99999
99999 5 23333
23333 10 00100
00100 18 27777
27777 11 -1
#include
using
namespace std;
const
int n=
100010
;int e[n]
,ne[n]
;bool flag[n]
;int
main()
//存位址
vector<
int>a;
for(
int i=h;i!=-1
;i=ne[i]
)for
(int i=h;i!=-1
;i=ne[i]
)for
(int i=h;i!=-1
;i=ne[i]
)for
(int i=
0;isize()
;i++
)return0;
}
PAT甲級真題1153
pat 准考證號由 44 部分組成 第 11 位是級別,即 t 代表頂級 a 代表甲級 b 代表乙級 第 2 42 4 位是考場編號,範圍從 101101 到 999999 第 5 105 10 位是考試日期,格式為年 月 日順次各佔 22 位 最後 11 1311 13 位是考生編號,範圍從 00...
PAT甲級真題 1014 Wait In Line
一 題目 二 思路 題意 模擬排隊,但和實際排隊的區別在於 思路 模擬排隊,記錄消費者辦理結束所需的總時間 以分鐘為單位,最後轉換為時刻,由等待時間 辦理時間組成 若等待時間wt 540,則給予sorry 否則,根據總時間sum算出相應時刻 注意 當兩個視窗同樣長且均未滿時,要同時入隊消費者,使之隊...
PAT甲級真題1140 外觀數列
外觀數列是指具有以下特點的整數序列 d,d1,d111,d113,d11231,d112213111,其中 d 是乙個 0,9 0,9 範圍內的不等於 11 的整數。序列的第 n 1n 1 項是對第 nn 項的描述。比如第 22 項表示第 11 項有 11 個 d,所以就是 d1 第 22 項是 1...