圖書管理員

題目描述

圖書館中每本書都有一個圖書編碼,能夠用於快速檢索圖書,這個圖書編碼是一個 正整數。 每位借書的讀者手中有一個需求碼,這個需求碼也是一個正整數。若是一本書的圖 書編碼剛好以讀者的需求碼結尾,那麼這本書就是這位讀者所須要的。 小 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 }

相關文章
相關標籤/搜索