洛谷P 3955図書管理者
6666 ワード
テーマ説明図書館には、各本に図書コードがあり、図書を迅速に検索するために使用することができます.この図書コードは正の整数です.本を借りた読者一人一人の手には需要コードがあり、この需要コードも正の整数です.もし1冊の本の図書コードがちょうど読者の需要コードで終わるならば、この本はこの読者が必要とするものです.Dさんは図書館の管理人になったばかりで、彼女は図書館のすべての本の図書のコードを知っていて、彼女はあなたにプログラムを書いてもらって、すべての読者に対して、彼の必要な本の中で図書のコードが一番小さい本を求めて、もし彼の必要な本がなければ、-1を出力してください.
入力フォーマットの最初の行は、2つの正の整数n,qを含み、図書館の本の数と読者の数を表す1つのスペースで区切られています.
次のn行は、各行に正の整数が含まれており、図書館のある本の図書コードを表しています.
次のq行は、各行に2つの正の整数を含み、1つのスペースで分けられ、1つ目の正の整数は図書館の読者の需要コードの長さを表し、2つ目の正の整数は読者の需要コードを表す.
出力フォーマットq行は、各行に1つの整数を含み、i番目の読者が必要とする本が存在する場合、i番目の読者が必要とする本の中で図書コードが最も小さい本の図書コードをi番目の行に出力し、そうでなければ−1を出力する.
入出力サンプル入力#1コピー5 5 5 2123 1123 23 24 24 2 23 23 123 3 124 2 12 12出力#1コピー23 1123−1−1−1
入力フォーマットの最初の行は、2つの正の整数n,qを含み、図書館の本の数と読者の数を表す1つのスペースで区切られています.
次のn行は、各行に正の整数が含まれており、図書館のある本の図書コードを表しています.
次のq行は、各行に2つの正の整数を含み、1つのスペースで分けられ、1つ目の正の整数は図書館の読者の需要コードの長さを表し、2つ目の正の整数は読者の需要コードを表す.
出力フォーマットq行は、各行に1つの整数を含み、i番目の読者が必要とする本が存在する場合、i番目の読者が必要とする本の中で図書コードが最も小さい本の図書コードをi番目の行に出力し、そうでなければ−1を出力する.
入出力サンプル入力#1コピー5 5 5 2123 1123 23 24 24 2 23 23 123 3 124 2 12 12出力#1コピー23 1123−1−1−1
#include
using namespace std;
int main(){
int n,q;
int bookid[1005], len[1005], reader[1005];
int i, j, k, m;
cin >> n >> q;
for(i=0; i<n; ++i)
cin >> bookid[i];
for(i=0; i<q; ++i)
cin >> len[i] >> reader[i];
sort(bookid, bookid + n);
for(i=0; i<q; ++i){
m=10;
for(j=1; j<len[i]; ++j) m *= 10;
for(j=0; j<n; ++j){
if(bookid[j] % m == reader[i]){
cout << bookid[j] << endl;
break;
}
}
if(j==n) cout << -1 << endl;
}
return 0;
}