CodeForces Round #180 (297B) - Fish Weight

     由于是 0 < w1w2 ≤ ... ≤ wk....当B中排序最后的鱼序号有大于A排序最后的鱼...那么将B的这鱼重量和A当前最大的鱼定为相等..则这两条鱼的重量相抵消 .所以如果这么做..只要A还有鱼..就能保证每次B所有的总重量都不会大于A的总重量...这么抵消下去..一旦A有条鱼的序号大于B所剩的所有鱼..那么A就可以胜利了..因为可以令小于A这条鱼的所有鱼重量无穷小...


Program:

 

//http://codeforces.com/contest/297/problem/B

#include<iostream>

#include<stdio.h>

#include<string.h>

#include<cmath>

#include<algorithm>

#include<map>

#include<set>

#include<queue>

#define ll long long 

#define oo 1000000001

#define MAXN 400005

using namespace std;

int n,m,k,a[100005],b[100005];

bool judge()

{

       while (m && n && b[m]>=a[n]) m--,n--;

       if (n && (!m || a[n]>b[m])) return true;

       return false;

}

int main()

{      

       int i,j;

       while (~scanf("%d%d%d",&n,&m,&k))

       {

             for (i=1;i<=n;i++) scanf("%d",&a[i]);

             sort(a+1,a+1+n);

             for (i=1;i<=m;i++) scanf("%d",&b[i]);

             sort(b+1,b+1+m);

             if (judge()) printf("YES\n");

                   else   printf("NO\n");

       }

       return 0;

}


 

 

你可能感兴趣的:(codeforces)