2014年11月21日 星期五

Codeforces Round #277.5 (Div. 2), problem: (B) BerSU Ball

Greedy取

#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#include<vector>
#include<utility>
#include<map>
#include<set>
#include<queue>
#include<cmath>
using namespace std;
typedef long long int int64;
int _abs(int x){return max(x, -x);}
int main()
{
    int a[101], b[101], an, bn;
    int use[101] = {0};
    scanf("%d", &an); for(int lx = 0;lx < an;lx++) scanf("%d", a+lx);
    scanf("%d", &bn); for(int lx = 0;lx < bn;lx++) scanf("%d", b+lx);
    sort(a, a+an); sort(b, b+bn);
    int cnt = 0;
    for(int lx = 0;lx < an;lx++){
        int ok_index = -1;
        for(int ly = 0;ly < bn and ok_index == -1;ly++)
            if( use[ly]==0 and _abs(a[lx] - b[ly]) <= 1)
                ok_index = ly;
        if(ok_index != -1){
            use[ok_index] = 1;
            cnt++;
        }
    }
    printf("%d\n", cnt);
    return 0;
}

沒有留言:

張貼留言