Codeforces 872 A Search for Pretty Integers

来源:互联网 发布:php txt教程下载 编辑:程序博客网 时间:2024/06/08 09:44

题目地址
题意:给你两个集合a和b,容量分别为n和m,让你求出最小的数,包含了a中的一个数以及b中的一个数。
思路:排序+标记,我们先看有没有同时在a和b中出现的数,如果有的话,选最小的一个同时出现的数输出,如果没有的话就是把a和b集合分别排序,去每个集合中的最小值出来,然后二者的最小值当第一位,大者当后一位。

#include <iostream>#include <cstring>#include <string>#include <queue>#include <vector>#include <map>#include <set>#include <stack>#include <cmath>#include <cstdio>#include <algorithm>#define N 400010#define LL __int64#define inf 0x3f3f3f3f 0#define lson l,mid,ans<<1#define rson mid+1,r,ans<<1|1#define getMid (l+r)>>1#define movel ans<<1#define mover ans<<1|1const int mod = 1000000007;using namespace std;int num[N];int flag1[10];int a[N], b[N];int flag2[10];int main() {    cin.sync_with_stdio(false);    int n, m;    while (cin >> n >> m) {        memset(flag1, 0, sizeof(flag1));        memset(flag2, 0, sizeof(flag2));        for (int i = 0; i < n; i++) {            cin >> a[i];            flag1[a[i]] = 1;        }        for (int i = 0; i < m; i++) {            cin >> b[i];            flag2[b[i]] = 1;        }        for (int i = 1; i < 10; i++) {            if (flag1[i] && flag2[i]) {                cout << i << endl;                return 0;            }        }        sort(a, a + n);        sort(b, b + m);        cout << min(a[0],b[0]) << max(b[0],a[0]) << endl;    }    return 0;}
原创粉丝点击