求大佬指点,只能过40%的测试用例(球球了)
#include<bits/stdc++.h> using namespace std; void paixu(int * a,int n) { for(int i = 0;i< n - 1; i++) { int min = a[i]; for(int j = i + 1; j < n; j++) { if(min > a[j]) { int temp = a[j]; a[j] = a[i]; a[i] = temp; } } } }
void solve()//非void必须得有返回值
{
int n,q;
cin >> n >> q;
int a[n];
for(int i = 0; i<n; i++)
{
cin >> a[i];
}
paixu(a,n);
size_t b[q];
int c[q];
for(int k = 0; k < q;k++)
{
cin >> b[k] >> c[k];//注意数组数据输入,防止未定义行为
}
for(int i = 0;i < q; i++)
{
bool flag = false;
string s = to_string(c[i]);
for(int j = 0; j < n; j++){
string str = to_string(a[j]);
if(str.size() < b[i])
{
continue;
}
else{
string ss = str.substr(str.size() - b[i], b[i]);//substr()中不能使用end(),因为end()是迭代器而并非索引
if(ss == s)
{
cout << a[j] << endl;
flag = true;
break;
}
}
}
if(!flag)
cout << "-1" << endl;
}
}
int main() { solve(); return 0; }