7-25 盲盒包装流水线(标准解法+简洁AC)
眾所周知,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<bits/stdc++.h> using namespace std; int main() {queue<stack<long>> line;stack<long> box;map<long,int> flag;long N,box_max,id;cin >> N >> box_max;/* 編號讀入環節 */while (N--){cin >> id;box.push(id);if(box.size()==box_max){line.push(box);while (!box.empty()) box.pop();}}/* 編號記入環節 */while (!line.empty()){while (!line.front().empty()){cin >> id;flag[line.front().top()] = id;line.front().pop();}line.pop();}/* 最后查詢環節 */cin >> N;while (N--){cin >> id;if(flag[id]==0) cout << "Wrong Number" << endl;else cout << flag[id] << endl;}return 0; }總結
以上是生活随笔為你收集整理的7-25 盲盒包装流水线(标准解法+简洁AC)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大锤砸向了阿里巴巴的中台 阿里巴巴还是个
- 下一篇: 白杨SEO:做百度快排网站会被降权吗?再