NinjaSword @ 2019-11-08 20:52:19
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include <algorithm>
using namespace std;
int n,q,i,j,c,a[1010],b[1010],d[1010],zxz,tmp;
main()
{
cin>>n>>q;
for(i=1;i<=n;i++)
cin>>a[i];//馆编码
for(i=1;i<=q;i++)
{
cin>>b[i];//长度
cin>>d[i];//需求码
}
for(i=1;i<=q;i++)
{
zxz=9999;
tmp=pow(10,b[i]);
for(j=1;j<=n;j++)
if(a[j]%tmp==d[i]&&zxz>a[j]) zxz=a[j];
if(zxz!=9999) cout<<zxz<<endl;
else cout<<"-1"<<endl;
}
return 0;
}
我的代码到底哪里有问题,为什么本地输出和数据一样,在线WA九个?求助!!
by xiaomic @ 2019-11-08 21:07:14
你先把它sort一下就不用判断了
我改了一下
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include <algorithm>
using namespace std;
int n,q,i,j,c,a[1010],b[1010],d[1010],zxz,tmp;
main()
{
cin>>n>>q;
for(i=1;i<=n;i++)
cin>>a[i];//馆编码
for(i=1;i<=q;i++)
{
cin>>b[i];//长度
cin>>d[i];//需求码
}
sort(a,a+n);
for(i=1;i<=q;i++)
{
zxz=0;
tmp=pow(10,b[i]);
for(j=1;j<=n;j++)
if(a[j]%tmp==d[i])
{
cout<<a[j]<<endl;
zxz=1;
break;
}
if(zxz==0) cout<<"-1"<<endl;
}
return 0;
}
AC
by NinjaSword @ 2019-11-13 19:30:36
太感谢了!! %%%