1034: [ZJOI2008]泡泡堂BNB

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1034

简单贪心。最弱能赢就赢,最强能赢就赢,不然最弱打最强。第二问用2*n减去数组对调的第一问即可。
#include <iostream>
#include 
<cstdio>
#include 
<algorithm>
using namespace std;
const int MaxN=100050;

int n,a[MaxN],b[MaxN],t[MaxN];

void init()
{
    cin
>>n;
    
for (int i=0;i<n;i++)
    
{
        cin
>>a[i];
    }

    
for (int i=0;i<n;i++)
    
{
        cin
>>b[i];
    }

}


int work(int *a,int *b)
{
    
int fa=0,fb=0,la=n-1,lb=n-1,ans=0;
    
while (fa<=la)
    
{
        
if (a[fa]>b[fb])
        
{
            ans
+=2;
            fa
++;
            fb
++;
        }

        
else
        
{
            
if (a[la]>b[lb])
            
{
                ans
+=2;
                la
--;
                lb
--;
            }

            
else
            
{
                
if (a[fa]==b[lb])
                
{
                    ans
++;
                }

                fa
++;
                lb
--;
            }

        }

    }

    
return ans;
}


int main()
{
    init();
    sort(a,a
+n);
    sort(b,b
+n);
    cout
<<work(a,b)<<' '<<2*n-work(b,a)<<endl;
    
return 0;
}


posted on 2013-02-13 22:30 Kiro 阅读(97) 评论(0)  编辑 收藏 引用 所属分类: 衡八oj