題目描述
有順序排列的1,2, 3,…,n節車廂在入站口等待排程。車站設定了乙個棧作為緩衝,這樣的話只可能進行下列兩個操作之一:
(1)如果還有車廂在入站口,將最前面的入棧緩衝
(2)將棧頂的車廂駛出車站
給定乙個1至n的排列,問其作為出站序列是否合法。
注意:入站順序為1,2, 3,…,n,即1先入棧...,n最後入棧。
輸入輸入包含若干測試用例。每乙個測試用例由多行組成。第一行是兩個整數n(1<=n <= 100)和m,n表示入站序列為1至n。m表示隨後有m行出站序列。
當n,m均為0時表示輸入結束。
輸出對應每乙個出站序列,合法則輸出一行yes,否則輸出一行no。
樣例輸入
3 61 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
0 0樣例輸出
yesyes
yesyes
noyes
#include#include#include#includeusing namespace std;
#define ok 1
#define overflow -2
#define error 0
#define true 1
#define false 0
#define stack_init_size 100
#define stackincrement 10
typedef int status;
typedef int selemtype;
typedef struct sqstack;
status initstack(sqstack &s)
/*status destroystack(sqstack &s)
return ok;
}status clearstack(sqstack &s) */
status stackempty(sqstack s)
status gettop(sqstack s,selemtype &e)
status push(sqstack &s,selemtype e)
*s.top++=e;
return ok;
}status pop(sqstack &s,selemtype &e)
/* check the stack out seqence is valid or not
** return value:
* >0 : valid
* =0 : invalid
* <0 : error occured
*/int check_valid (char in, char out, int length)
}return 0;
}
火車站排程問題
題目要求 1.問題 一列火車要將n節車廂分別送往n個車站,車站按照n,n 1,1的編號次序經過車站。假設車廂的編號就是其目的地車站的編號。2.要求 給定乙個任意的車廂排列次序。重新排列車廂,使其按照從1到n的次序排列。規定重排排程時車廂只能從入軌到緩衝鐵軌,或者從緩衝鐵軌到出軌。include in...
車站建造問題
題目大意 有108個村莊排在一條公路上,依次編號為0 108 1,相鄰村莊距離為1,其中有n個村莊居住著牛牛,居住著牛牛的村莊從小到大依次為a0 an 1,其中保證a0 0.現在需要建設車站,有兩個要求必須被滿足 1 每個有牛牛居住的村莊必須修建車站。2 相鄰車站的距離必須為1或為某個質數。現給出n...
火車站臺問題
今天流利說筆試火車站臺問題,很簡單的問題,但是我二十分鐘沒做出來,其中遇到了兩個bug,參考迭代器iterator在遍歷時能remove但是不能往集合裡新增元素問題 list集合根據索引刪除資料時用另乙個list集合的資料當索引操作失敗問題即list.remove list1.get index 這...