我是直接用二维数据组做索引,这样更快
#include<iostream>
#include<algorithm>
using namespace std;
int qpow(int a, int b) { int res = 1; while (b) { if (b & 1)res = res * a; b >>= 1; a = a * a; }return res; }
int n, q, t;
int num[1010][9], tim[1010];
int getlen(int tt) {
int sum = 0;
while (tt) {
tt /= 10;
sum++;
}
return sum;
}
int main() {
cin >> n >> q;
for (int i = 0; i < n; i++) {
cin >> t;
tim[i] = t;
int len = getlen(t);
for (int j = 1; j < 9; j++) {
if (len >=j) {
num[i][j] = t % qpow(10, j);
}
else {
num[i][j] = -1;
}
}
}
while (q) {
q--;
int ss, ll, an=1000000000;
cin >> ss >> ll;
int flag = -1;
for (int i = 0; i < n; i++) {
if (num[i][ss])
{
if (num[i][ss] == ll)
{
flag = 1;
an = min(an, tim[i]);
}
else {
}
}
}
if (flag==1)
{
cout << an << endl;
}
else {
cout << "-1" << endl;
}
}
return 0;
}

京公网安备 11010502036488号