题解 CF870A 【Search for Pretty Integers】

来一发不一样的思路

你们都排序,可是我

不排序!

其实,对于这种判断一个数字有没有在两个数组里出现的题目用桶最方便

具体做法:

先读入两个数组,在桶中标记;

然后从1扫到9,有同时出现的就输出

不然找最小的

上巨短代码

1
2
3
4
5
6
7
8
9
10
11
12
#include <cstdio>
int a[10],b[10],n,m,x,y;
int main(void){
scanf ("%d%d",&n,&m);
for (int i=0;i<n;i++)scanf ("%d",&x),a[x]=1;
for (int i=0;i<m;i++)scanf ("%d",&x),b[x]=1;
for (int i=1;i<10;i++)if (a[i]&&b[i])return !printf ("%d",i);
for (int i=1;i<10;i++)if (a[i]){x=i;break;}
for (int i=1;i<10;i++)if (b[i]){y=i;break;}
if (x<y)printf ("%d",x*10+y);
else printf ("%d",y*10+x);
}