盲盒包装流水线(数据结构实践-栈)
題目要求:
眾所周知,PAT 有 9 枚徽章,分別對應青銅、白銀、黃金、白金、鉆石、大師、王者、大圣、天神這 9 個段位,只有成績非常優秀的考生才有資格獲得刻有自己名字的徽章。現在,PAT 制作了徽章的小型紀念版,要制成盲盒給大家玩了!
下圖是一條盲盒包裝流水線的示意圖。首先徽章通過進貨口被壓入貨棧里,空盒在履帶上從左向右傳送。每次從貨棧里彈出一枚徽章,進入打包機,裝入一只空盒,打包后繼續向右邊傳送。當貨棧為空時,打包機會暫停,等待下一批徽章壓入貨棧。
每只盒子都有一個編號,小拼姐姐手里有進入流水線的空盒編號順序表,也有每一批送往貨棧的徽章順序表,這樣她其實可以知道每只盒子里裝了哪種徽章。有些小朋友收到了盲盒,就想在拆封前問無所不知的小拼姐姐,盒子里的徽章是哪一種。但是因為盲盒總量有?105?這么多,小拼姐姐可記不住每只盒子里裝的是什么,于是你就被請來寫個程序幫小拼姐姐回復這種信息。
輸入格式:
輸入第一行給出 2 個正整數,分別為盲盒總量?N(≤105)和貨棧容量?S(≤100)。接下來一行給出?N?只盒子的編號,編號由 5 位數字組成,給出的順序是空盒進入傳送帶的順序。隨后?N/S(保證是整數)行,每行給出一批?S?枚徽章的類型,為 1-9 的數字,給出的順序是從進貨口入棧的順序。
再下面給出一個正整數?K(≤104),為查詢次數。隨后?K?行,每行給出一個 5 位編號。
對每個查詢編號,在一行中輸出該盒子中裝的徽章類型。如果編號是錯誤的,則在一行中輸出?Wrong Number。
輸入案例:
10 5
00132 10093 92001 23333 66666 88888 09009 34658 82750 69251
1 2 3 4 5
9 8 7 6 1
5
66666
88888
69251
55555
10093
輸出樣例:
1
1
9
Wrong Number
4
?
代碼解析:
#include<iostream> #include<stack> #include<algorithm> using namespace std; stack<int> st; int main() {int n, s, no;int a[10000], b[10000];cin >> n >> s;int num = n / s;int j = 1, ci = 1;while (num--){for (int i = 1; i <= s; i++){cin >> no;st.push(no);}for (; j <= ci * s; j++){a[j] = st.top();st.pop();}ci++;}j = 1;for (; j <= n; j++){cin >> num;b[j] = num;}cin >> num; int* index;for (int i = 1; i <= num; i++){cin >> no;index = find(a + 1, a + n + 1, no);if ((index - a) > n || (index - a) < 0){cout << "Wrong Number" << endl;continue;}cout << b[index - a] << endl;}return 0; }總結
以上是生活随笔為你收集整理的盲盒包装流水线(数据结构实践-栈)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机毕业设计Python+djang公
- 下一篇: 【解决】mysql本地计算机上的MySQ