CF156E.Mrs. Hudson's Pancakes

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Mrs. Hudson hasn't made her famous pancakes for quite a while and finally she decided to make them again. She has learned mm new recipes recently and she can't wait to try them. Those recipes are based on nn special spices. Mrs. Hudson has these spices in the kitchen lying in jars numbered with integers from 00 to n1n-1 (each spice lies in an individual jar). Each jar also has the price of the corresponding spice inscribed — some integer aia_{i} .

We know three values for the ii -th pancake recipe: did_{i} , sis_{i} , cic_{i} . Here did_{i} and cic_{i} are integers, and sis_{i} is the pattern of some integer written in the numeral system with radix did_{i} . The pattern contains digits, Latin letters (to denote digits larger than nine) and question marks. Number xx in the did_{i} -base numeral system matches the pattern sis_{i} , if we can replace question marks in the pattern with digits and letters so that we obtain number xx (leading zeroes aren't taken into consideration when performing the comparison). More formally: each question mark should be replaced by exactly one digit or exactly one letter. If after we replace all question marks we get a number with leading zeroes, we can delete these zeroes. For example, number 40A9875 in the 1111 -base numeral system matches the pattern "??4??987?", and number 4A9875 does not.

To make the pancakes by the ii -th recipe, Mrs. Hudson should take all jars with numbers whose representation in the did_{i} -base numeral system matches the pattern sis_{i} . The control number of the recipe ( ziz_{i} ) is defined as the sum of number cic_{i} and the product of prices of all taken jars. More formally: (where jj is all such numbers whose representation in the did_{i} -base numeral system matches the pattern sis_{i} ).

Mrs. Hudson isn't as interested in the control numbers as she is in their minimum prime divisors. Your task is: for each recipe ii find the minimum prime divisor of number ziz_{i} . If this divisor exceeds 100100 , then you do not have to find it, print -1.

输入格式

The first line contains the single integer nn ( 1<=n<=1041<=n<=10^{4} ). The second line contains space-separated prices of the spices a0,a1,...,an1a_{0},a_{1},...,a_{n-1} , where aia_{i} is an integer ( 1<=ai<=10181<=a_{i}<=10^{18} ).

The third line contains the single integer mm ( 1<=m<=31041<=m<=3·10^{4} ) — the number of recipes Mrs. Hudson has learned.

Next mm lines describe the recipes, one per line. First you are given an integer did_{i} , written in the decimal numeral system ( 2<=di<=162<=d_{i}<=16 ). Then after a space follows the sis_{i} pattern — a string from 11 to 3030 in length, inclusive, consisting of digits from "0" to "9", letters from "A" to "F" and signs "?". Letters from "A" to "F" should be considered as digits from 1010 to 1515 correspondingly. It is guaranteed that all digits of the pattern (including the digits that are represented by letters) are strictly less than did_{i} . Then after a space follows an integer cic_{i} , written in the decimal numeral system ( 1<=ci<=10181<=c_{i}<=10^{18} ).

Please do not use the %lld specificator to read or write 64-bit integers in С++, in is preferred to use cin, cout, strings or the %I64d specificator instead.

输出格式

For each recipe count by what minimum prime number the control number is divided and print this prime number on the single line. If this number turns out larger than 100100 , print -1.

输入输出样例

  • 输入#1

    1
    1
    1
    2 ? 1
    

    输出#1

    2
    
  • 输入#2

    4
    2 3 5 7
    4
    2 ?0 11
    2 ?1 13
    2 0? 17
    2 1? 19
    

    输出#2

    3
    2
    23
    2
    
  • 输入#3

    1
    1000000000000000000
    1
    16 ?????????????? 1
    

    输出#3

    -1
    

说明/提示

In the first test any one-digit number in the binary system matches. The jar is only one and its price is equal to 11 , the number cc is also equal to 11 , the control number equals 22 . The minimal prime divisor of 22 is 22 .

In the second test there are 44 jars with numbers from 00 to 33 , and the prices are equal 22 , 33 , 55 and 77 correspondingly — the first four prime numbers. In all recipes numbers should be two-digit. In the first recipe the second digit always is 00 , in the second recipe the second digit always is 11 , in the third recipe the first digit must be 00 , in the fourth recipe the first digit always is 11 . Consequently, the control numbers ​​are as follows: in the first recipe 2×5+11=212×5+11=21 (the minimum prime divisor is 33 ), in the second recipe 3×7+13=443×7+13=44 (the minimum prime divisor is 22 ), in the third recipe 2×3+17=232×3+17=23 (the minimum prime divisor is 2323 ) and, finally, in the fourth recipe 5×7+19=545×7+19=54 (the minimum prime divisor is 22 ).

In the third test, the number should consist of fourteen digits and be recorded in a sixteen-base numeral system. Number 00 (the number of the single bottles) matches, the control number will be equal to 1018+110^{18}+1 . The minimum prime divisor of this number is equal to 101101 and you should print -1.

首页