圖書館中每本書都有一個圖書編碼,能夠用於快速檢索圖書,這個圖書編碼是一個 正整數。 每位借書的讀者手中有一個需求碼,這個需求碼也是一個正整數。若是一本書的圖 書編碼剛好以讀者的需求碼結尾,那麼這本書就是這位讀者所須要的。 小 D 剛剛當上圖書館的管理員,她知道圖書館裏全部書的圖書編碼,她請你幫她寫 一個程序,對於每一位讀者,求出他所須要的書中圖書編碼最小的那本書,若是沒有他 須要的書,請輸出 -1 。html
輸入格式:c++
第一行,包含兩個正整數 n , q,以一個空格分開,分別表明圖書館裏 書的數量和讀者的數量。編碼
接下來的 n 行,每行包含一個正整數,表明圖書館裏某本書的圖書編碼。spa
接下來的 q 行,每行包含兩個正整數,以一個空格分開,第一個正整數表明圖書館 裏讀者的需求碼的長度,第二個正整數表明讀者的需求碼。code
輸出格式:htm
q 行,每行包含一個整數,若是存在第 ii 個讀者所須要的書,則在第 ii 行輸出第 ii 個讀者所須要的書中圖書編碼最小的那本書的圖書編碼,不然輸出 −1 。blog
1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,q; 4 int number[1009]; 5 int ans[1009]; 6 struct r{ 7 int s;//長度 8 int name;//末尾號 9 }reader[1009];//定義讀者查書的編號 10 int main(){ 11 cin>>n>>q; 12 for(int i=1;i<=q;i++){ 13 ans[i]=-1; 14 } 15 for(int i=1;i<=n;i++){ 16 cin>>number[i]; 17 } 18 for(int i=1;i<=q;i++){ 19 cin>>reader[i].s>>reader[i].name; 20 }//讀入
21 sort(number+1,number+1+n);//爲節省時間而排序
22 for(int i=1;i<=q;i++){ 23 for(int j=1;j<=n;j++){ 24 int num=pow(10,reader[i].s); 25 num=number[j]%num;//取末尾 26 if(num==reader[i].name){ 27 ans[i]=number[j];//保存答案 28 break; 29 } 30 } 31 } 32 for(int i=1;i<=q;i++){ 33 cout<<ans[i]<<endl; 34 } 35 }