L1-005 考試座位號 (15分)
每個 PAT 考生在參加考試時都會被分配兩個座位號,一個是試機座位,一個是考試座位,正常情況下,考生在入場時先得到試機座位號碼,入座進入試機狀態后,系統會顯示該考生的考試座位號碼,考試時考生需要換到考試座位就座,但有些考生遲到了,試機已經結束,他們只能拿著領到的試機座位號碼求助于你,從后臺查出他們的考試座位號碼,
輸入格式:
輸入第一行給出一個正整數 \(N \; (\leq 1000)\),隨后 \(N\) 行,每行給出一個考生的資訊:準考證號 試機座位號 考試座位號,其中準考證號由 \(16\) 位數字組成,座位從 \(1\) 到 \(N\) 編號,輸入保證每個人的準考證號都不同,并且任何時候都不會把兩個人分配到同一個座位上,
考生資訊之后,給出一個正整數 \(M \; (\leq N)\),隨后一行中給出 \(M\) 個待查詢的試機座位號碼,以空格分隔,
輸出格式:
對應每個需要查詢的試機座位號碼,在一行中輸出對應考生的準考證號和考試座位號碼,中間用 \(1\) 個空格分隔,
輸入樣例:
4
3310120150912233 2 4
3310120150912119 4 1
3310120150912126 1 3
3310120150912002 3 2
2
3 4
輸出樣例:
3310120150912002 2
3310120150912119 1
解題思路:
使用一個陣列記錄下試機座位號碼對應的陣列下標,然后按要求輸出即可,
代碼:
#include<bits/stdc++.h>
using namespace std;
#define maxn 1005
int n,k,b,c[maxn],pos[maxn];
string a[maxn];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i]>>b>>c[i];
pos[b]=i; /*記錄試機座位號碼對應的陣列下標*/
}
cin>>k;
while(k--)
{
cin>>b;
cout<<a[pos[b]]<<' '<<c[pos[b]]<<endl;
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/52961.html
標籤:C++
上一篇:c++中的例外處理
