哔哩哔哩 @ 2018-10-02 22:26:34
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;
long long x[1005],tmp[1005],xc[1005],a[1005];
int main()
{
int n,q;
scanf("%d%d",&n,&q);
memset(tmp,1,sizeof(tmp));
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a,a+1+n);
for(int i=1;i<=q;i++)
{
cin>>xc[i]>>x[i];
for(int j=1;j<=xc[i];j++) tmp[i]*=10;
}
for (int i=1;i<=q;i++){
for (int j=1;j<=n;j++)
if (a[j]%tmp[i]==x[i]){
cout<<a[j]<<endl;
break;
}
else if (j==n){
cout<<"-1"<<endl;
break;
}
}
}
深夜问 感谢了!
by Kiel @ 2018-10-02 22:30:20
参考一下这个
#include<cstdio>
#include<ctype.h>
#include<cstring>
#include<string>
#include<iostream>
using namespace std;
int deno(int x){
int ans=1;
while(x--){
ans*=10;
}
return ans;
}
int main(){
int n,q,ap;
int s,a[1000];
cin>>n>>q;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
while(q--){
scanf("%d %d",&ap,&s);
int big=10000001;
for(int i=1;i<=n;i++){
if(a[i]%(deno(ap))==s){
if(a[i]<big)big=a[i];
}
}
if(big!=10000001){
cout<<big<<endl;
}
else{
cout<<-1<<endl;
}
}
return 0;
}
by Kiel @ 2018-10-02 22:30:23
@哔哩哔哩
by 漳平陈嘉琦 @ 2018-10-02 22:30:55
噢,大佬装弱
by 哔哩哔哩 @ 2018-10-02 22:31:10
能不能帮我看看我那个,不知道错哪里
by WA鸭鸭 @ 2018-10-02 22:34:28
@哔哩哔哩 memset炸了
by 哔哩哔哩 @ 2018-10-02 22:38:01
@WA鸭鸭 为什么memset会炸啊 感觉使用没问题啊
by Kiel @ 2018-10-02 22:38:59
@哔哩哔哩 memset 是按字节分配,你配出来的话是 11111111
by Kiel @ 2018-10-02 22:39:52
@哔哩哔哩 memset 复制到127,每个数字中的数字是 12712712,他是按字节分配
by 哔哩哔哩 @ 2018-10-02 22:42:07
感谢指出一直不知道的错误!@something