L2-1 盲盒包装流水线 (25 分)
眾所周知,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>
#include<map>
using namespace std;
int main()
{
? ? map<int,int>q;
? ? int n,s;
? ? cin>>n>>s;
? ? int a[n+1];
? ? for(int i=1;i<=n;i++){
? ? ? ? cin>>a[i];
? ? }
? ? int cnt=1;
? ? int len=n/s;
? ? while(len--){
? ? ? ? int b[s];
? ? ? ? for(int i=0;i<s;i++){
? ? ? ? ? ? cin>>b[i];
? ? ? ? }
? ? ? ? int c=s-1;
? ? ? ? for(int j=cnt;c>=0;j++){
? ? ? ? ? ?
? ? ? ? ? ? q[a[j]]=b[c];//用map標記
? ? ? ? ? ? c--;
? ? ? ? }
? ? ? ? cnt+=s;
? ? }
? ? int m;
? ? cin>>m;
? ? while(m--){
? ? ? ? int num;
? ? ? ? cin>>num;
? ? ? ? if(q[num]!=0)cout<<q[num];
? ? ? ? else cout<<"Wrong Number";
? ? ? ? cout<<endl;
? ? }
? ? return 0;
}
總結
以上是生活随笔為你收集整理的L2-1 盲盒包装流水线 (25 分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树的概念及存储结构(双亲表示法,孩子表示
- 下一篇: 龙卷风迁徙地图,原来可以这样做