[NOIP 2017普及グループ]図書管理者

1810 ワード

NOIP2017

タイトルの説明


図書館の中ですべての本はすべて1つの図書のコードがあって、急速に図書を検索することができて、この図書のコードは1つです
正の整数
本を借りた読者一人一人の手には需要コードがあり、この需要コードも正の整数です.本の図が
本のコードはちょうど読者の需要コードで終わり、この本はこの読者が必要としている.
Dさんは図書館の管理人になったばかりで、図書館のすべての本の図書コードを知っています.彼女はあなたに書いてもらいました.
一つのプログラムは、すべての読者に対して、彼が必要とする本の中で図書のコードが一番小さい本を求めて、もし彼がいなければ
必要な本は、-1を出力してください.

入力


最初の行は、2つの正の整数nとqを含んで、1つのスペースで分けて、それぞれ図書館の中を代表します
本の数と読者の数.
次のn行は、各行に正の整数が含まれており、図書館のある本の図書コードを表しています.
次のq行は、各行に2つの正の整数が含まれ、1つのスペースで区切られ、最初の正の整数は図書館を表します.
の読者の需要コードの長さ、2番目の正の整数は読者の需要コードを表します.

しゅつりょく


q行があり、各行には整数が含まれており、i番目の読者に必要な本があればi番目に
行はi番目の読者が必要とする本の中で図書コードが最も小さい本の図書コードを出力し、そうでなければ-1を出力する.

サンプル入力


(コンソールにコピーして改行がない場合は、テキストエディタに貼り付けてからコピーできます)
5 5
2123
1123
23
24
24
2 23
3 123
3 124
2 12
2 12

サンプル出力

23
1123
-1
-1
-1
も簡単なシミュレーションで、難しくありません.小さなコードに注意すればいいです.
直接:
#include
#include
#include
#include
#include
using namespace std;
int n,p,a[1005];
int main()
{
	//freopen("librarian.in","r",stdin);
	//freopen("librarian.out","w",stdout);
	scanf("%d%d",&n,&p);
	for(int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	sort(a+1,a+n+1);// , 
	for(int i=1;i<=p;i++)
	{
		int x,y,ml=1;
		scanf("%d%d",&x,&y);
		for(int j=1;j<=x;j++)
			ml*=10;// 10^x
		for(int j=1;j<=n;j++)
		{
			if(a[j]%ml==y)
			{
				printf("%d
",a[j]); break; } else if(j==n)// printf("-1
"); } } return 0; }