田忌赛马

#include <stdio.h>
#include <string.h>
#include <algorithm>

using namespace std;
int a[1005],b[1005];
bool v1[1005],v2[1005];
int n;
int main(){
    int i,j,k;
    while(scanf("%d",&n)&&n){
        int judge();
        for(i=0;i<n;i++) scanf("%d",&a[i]);
        for(i=0;i<n;i++) scanf("%d",&b[i]);
        sort(a,a+n);
        sort(b,b+n);
        memset(v1,0,sizeof(v1));
        memset(v2,0,sizeof(v2));
        k=0;
        for(i=0;i<n;i++){
            int l=judge();
            if(l==1) k++;
            else if(l==-1) k--; 
        }
        printf("%d\n",k);
    }
}
int judge(){
    int i,j,x=n-1,y=0,xx=n-1,yy=0;
    for(i=0;i<n;i++){
        if(v1[i]==0) {
            if(a[y]<a[i]) y=i;
            if(a[x]>a[i]) x=i;
        }
        if(v2[i]==0){
            if(b[xx]>b[i]) xx=i;
            if(b[yy]<b[i]) yy=i;
        }
    }
    if(a[x]>b[xx]){
        v1[x]=1;v2[xx]=1;
        return 1;
    } 
    else if(a[x]<b[xx]){
        v1[x]=1;v2[yy]=1;
        return -1;
    }
    else{
        if(a[y]>b[yy]){
            v1[y]=1;v2[yy]=1;
            return 1;
        }
        else if(a[y]<b[yy]){
            v1[x]=1;v2[yy]=1;
            return -1;
        }
        else {
            v1[x]=1;v2[yy]=1;
            if(a[x]==b[yy]) return 0;
            else return -1;
        }
    }
}

 

posted on 2017-04-10 21:32  jiang2017  阅读(118)  评论(0)    收藏  举报

导航