<= Ei 的话,说明i牛比j牛strong 求对每头牛而言 有多少牛比它strong
思路:跟前一道2352 stars 想法差不多,给E降序排序,if
E相同,S升序,这样就转化到stars那道题了
Si == Sj的情况,
//2120K
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define lowbit(x) (x&(-x))
#define M 100010
using namespace std;
int ar[M],Max,n;
struct data
{
x,y,num;
}node[M];
int max (int a,int b)
{
> b? a:b;
}
bool cmp (const data &a,const data
&b)
{
> b.y)
return true;
b.y&&a.x <
b.x)
return true;
false;
}
void add (int u)
{
<=
Max)
//发现加了Max这个优化没少几MS啊!!!
ar[u] += 1;
u += lowbit(u);
}
int sum (int u)
{
0;
> 0)
ans += ar[u];
u -= lowbit(u);
ans;
}
int main ()
{
i,x,y,strong[M];
("%d",&n)&&n)
memset (ar,0,sizeof(ar));
Max = 0;
for (i = 0;i < n;i ++)
{
scanf ("%d%d",&x,&y);
node[i].x =
x+1;
//加1处理 因为等于0时,0&(-0) 还是0
node[i].y = y+1;
node[i].num = i;
Max = max(Max,node[i].x);
}
sort (node,node + n,cmp);
int x0 = -1,y0 = -1;
int count = 0;
for (i = 0;i < n;i ++)
{
if (x0 == node[i].x&&y0 ==
node[i].y)