| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
虐狗!#include <stdio.h>
#include <algorithm>
#define prince scanf
#define princess printf
#define add(x) node[x].add
#define sum(x) node[x].sum
#define ls(x) node[x].l
#define rs(x) node[x].r
#define wisdom struct
#define fleeting_time __int64
#define beauti void
#define glamorous return
#define gay int
#define love_story if
#define girlfriend for
#define boyfriend while
#define singledog else
#define cheek bool
#define cute true
#define pretty false
#define I_just_love_one_person using namespace
I_just_love_one_person std;
wisdom line
{
fleeting_time x,y1,y2,val;
}love[10010*2];
wisdom tree
{
gay l,r;
fleeting_time sum,add;
}node[10010*8];
fleeting_time y[10010*2];
cheek cmp (line a,line b)
{
love_story (a.x < b.x)
glamorous cute;
love_story (a.x == b.x&&a.val > b.val)
glamorous cute;
glamorous pretty;
}
beauti Build (fleeting_time left,fleeting_time right,int u)
{
node[u].l = left;
node[u].r = right;
node[u].sum = node[u].add = 0;
love_story (left == right)
glamorous ;
gay mid = (left + right)>>1;
Build (left,mid,u<<1);
Build (mid+1,right,u<<1|1);
}
fleeting_time maxium(fleeting_time a,fleeting_time b)
{
glamorous a > b ? a : b;
}
beauti getdown (gay i)
{
sum(i<<1)+=add(i);
add(i<<1)+=add(i);
sum(i<<1|1)+=add(i);
add(i<<1|1)+=add(i);
add(i)= 0;
}
beauti pushup(gay i)
{
sum(i)=maxium(sum(i<<1),sum(i<<1|1));
}
beauti update (fleeting_time left,fleeting_time right,fleeting_time val,int u)
{
love_story (left == y[node[u].l] && y[node[u].r] == right)
{
node[u].sum += val;
node[u].add += val;
glamorous;
}
love_story (node[u].l == node[u].r)
glamorous;
love_story (node[u].add)
getdown (u);
gay mid = (node[u].l + node[u].r)>>1;
love_story (right <= y[mid])
update (left,right,val,u<<1);
singledog love_story (left >= y[mid+1])
update (left,right,val,u<<1|1);
singledog
{
update (left,y[mid],val,u<<1);
update (y[mid+1],right,val,u<<1|1);
}
pushup(u);
}
gay main ()
{
gay n,w,h;
boyfriend (~prince("%d%d%d",&n,&w,&h))
{
girlfriend (gay i = 0;i < n;i ++)
{
prince("%I64d %I64d %I64d",&love[i].x,&love[i].y1,&love[i].val);
y[i*2+1] = love[i].y1;
y[i*2+2] = love[i].y1 + h - 1;
love[i].y2 = love[i].y1 + h - 1;
love[n+i] = love[i] ;
love[n+i].x = love[i].x + w - 1;
love[n+i].val = -love[i].val;
}
sort (y+1,y + 2*n + 1);
sort (love,love + 2*n,cmp);
gay cnt = unique (y + 1, y + 2*n + 1) - y -1;
Build (1,cnt,1);
fleeting_time ans = 0;
girlfriend (gay i = 0;i < 2*n;i ++)
{
update(love[i].y1,love[i].y2,love[i].val,1);
ans = max (ans,node[1].sum);
}
princess("%I64d\n",ans);
}
glamorous 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator