乱心者不可留 @ 2017-11-12 20:18:46
以下是代码:
#include<bits/stdc++.h>
using namespace std;
int a[1010],b[1010],c[1010],d[1010],e[1010],f[1010],ans[1010];
int main(){
int i,j,k,l,m,n;
cin>>n>>m;
for(i=1;i<=n;i++){
cin>>a[i];
}
for(i=1;i<=m;i++){
ans[i]=0;
}
for(i=1;i<=m;i++){
cin>>b[i]>>c[i];
for(j=1;j<=b[i];j++){
d[1]=10;
d[j]=d[j-1]*10;
f[i]=max(d[j],d[j-1]);
}
for(j=1;j<=n;j++){
if(a[j]>=c[i] && (a[j]-c[i])%f[i]==0){
ans[i]=min(a[j],a[j-1]);
}else{
if(ans[i]!=0){
ans[i]=ans[i];
}else{
ans[i]=-1;
}
}
}
}
for(i=1;i<=m;i++){
cout<<ans[i]<<endl;
}
return 0;
}
by λᴉʍ @ 2017-11-12 20:24:45
太长了
by Lolierl @ 2017-11-12 22:17:34
@乱心者不可留
1.不要开bcd数组,纯属多余
2.f数组每次清零。
by 乱心者不可留 @ 2017-11-15 17:28:38
@xzz_233 那您怎么想的
by λᴉʍ @ 2017-11-15 17:50:13
@乱心者不可留 看题解
by 乱心者不可留 @ 2017-11-15 20:03:15
@xzz_233 您的也不短呢