資料結構實驗之棧六:下一較大值(二)
time limit: 150ms memory limit: 8000kb
submit statistic
problem description
對於包含n(1<=n<=100000)個整數的序列,對於序列中的每一元素,在序列中查詢其位置之後第乙個大於它的值,如果找到,輸出所找到的值,否則,輸出-1。
input
輸入有多組,第一行輸入t(1<=t<=10),表示輸入的組數;
以後是 t 組輸入:每組先輸入n,表示本組序列的元素個數,之後依次輸入本組的n個元素。
output
輸出有多組,每組之間輸出乙個空行(最後一組之後沒有);
每組輸出按照本序列元素的順序,依次逐行輸出當前元素及其查詢結果,兩者之間以–>間隔。
example input
2 4 12 20 15 18
5 20 15 25 30 6
example output
12–>20
20–>-1
15–>18
18–>-1
20–>25
15–>25
25–>30
30–>-1
6–>-1
hint
本題資料量大、限時要求高,須借助棧來完成。
這題之前自己手寫了乙個棧,簡直累死,而且各種出錯。後面乾脆不自己寫了,用c++就是了。
#include
#include
#include
using
namespace
std;
typedef
struct node
node;
node a[100010];
int main()
else
break;
}damn_stack.push(a[i]);}}
for(i=0; iprintf("%d-->%d\n",a[i].num,a[i].next);
if(t>0)
printf("\n");
}return
0;}
資料結構實驗之棧六 下一較大值(二)
time limit 150ms memory limit 8000k 有疑問?點這裡 對於包含n 1 n 100000 個整數的序列,對於序列中的每一元素,在序列中查詢其位置之後第乙個大於它的值,如果找到,輸出所找到的值,否則,輸出 1。輸入有多組,第一行輸入t 1 t 10 表示輸入的組數 以後...
資料結構實驗之棧六 下一較大值(二)
對於包含n 1 n 100000 個整數的序列,對於序列中的每一元素,在序列中查詢其位置之後第乙個大於它的值,如果找到,輸出所找到的值,否則,輸出 1。輸入有多組,第一行輸入t 1 t 10 表示輸入的組數 以後是 t 組輸入 每組先輸入n,表示本組序列的元素個數,之後依次輸入本組的n個元素。輸出有...
資料結構實驗之棧六 下一較大值(二)
time limit 150ms memory limit 8000k 有疑問?點這裡 對於包含n 1 n 100000 個整數的序列,對於序列中的每一元素,在序列中查詢其位置之後第乙個大於它的值,如果找到,輸出所找到的值,否則,輸出 1。輸入有多組,第一行輸入t 1 t 10 表示輸入的組數 以後...