AtCoder Regular Contest 092-C

昨晚的比赛,只做了一题,还是记录一下吧;

链接:https://arc092.contest.atcoder.jp/tasks/arc092_a

题目大意:有n个点(a[i].x,a[i].y)和n个点(b[i].x,b[i].y)求可以取多少对(a[i].x,a[i].y),(b[i].x,b[i].y)其中a[i].x

解题思路:先将n个a和b分别排好序,考虑从a中找到与(b[i].x,b[i].y)匹配的点,对于所有的a.x

解题代码:

#include
using namespace std;
struct pp
{
    int x,y,flag;
};
bool cmp(const pp&a,const pp&b)
{
    if(a.x!=b.x)
        return a.x>n)
    {
        for(int i=0;i>a[i].x>>a[i].y;
            a[i].flag=0;
        }
        for(int i=0;i>b[i].x>>b[i].y;
        sort(a,a+n,cmp);
        sort(b,b+n,cmp);
        int s=0;
        for(int i=0;ia[p].y)
                    p=j;
                 flag=1;
              }
            if(flag)
            {
                s++;
                a[p].flag=1;
            }
        }
        cout<

你可能感兴趣的:(日常比赛)