General
 
 
# Author Problem Lang Verdict Time Memory Sent Judged  
9824615 Practice:
Pudge123
198E - 30 GNU C++0x Accepted 374 ms 13712 KB 2015-02-14 13:04:57 2015-02-14 13:04:57
→ Source
#include<bits/stdc++.h>
#define pb push_back
#define mp make_pair
#define X first
#define Y second
#define fill(A,B) memset(A,B,sizeof(A))
#define For(i,A,B) for(int i=(A);i<(int)(B);i++)
#define rep(i,A,B) for(int i=(A);i<=(B);i++)
#define dep(i,B,A) for(int i=(B);i>=(A);i--)
#define re(i,A) for(int i=0;i<(int)(A);i++)
#define de(i,A) for(int i=(A)-1;~i;i--)
#define inf (1<<30)
#define mn 250011
#define P 1000000007
#define si(x) ((int)x.size())
#define MAX(A,B) A=max(A,B)
#define MIN(A,B) A=min(A,B)
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
inline ll pow(ll a,ll b,ll mo){if(!a)return 0;ll tmp=1;for(;b;b>>=1){if(b&1)tmp=(ll)tmp*a%mo;a=(ll)a*a%mo;}return tmp;}
template<class T>inline void R(T &xx){xx=0;char ch=getchar();bool F=0;while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();if(ch=='-')F=1,ch=getchar();while(ch>='0'&&ch<='9')xx=xx+xx+(xx<<3)+ch-48,ch=getchar();if(F)xx=-xx;}

int n,x0,y0,p,l1,rr=1;pair<ll,int>q[mn];ll r;
struct nod{int p,m;ll d,r;inline bool operator<(const nod&b)const{return d<b.d;}}a[mn];

int seg[mn<<2]; 
#define ls (x<<1)
#define rs (x<<1|1)
void build(int x,int l,int r){
    if(l==r){
        seg[x]=a[l].m;return;
    }
    int mid=l+r>>1;
    build(ls,l,mid);build(rs,mid+1,r);
    seg[x]=min(seg[ls],seg[rs]);
}
void modi(int x,int l,int r,ll R,int p){
    if(seg[x]>p)return;
    if(l==r){
        q[rr++]=mp(a[l].r,a[l].p);
        seg[x]=inf;
        return;
    }
    int mid=l+r>>1;
    modi(ls,l,mid,R,p);modi(rs,mid+1,r,R,p);
    seg[x]=min(seg[ls],seg[rs]);
}
void que(int x,int l,int r,ll R,int p){
    if(a[l].d>R)return;
    if(a[r].d<=R){modi(x,l,r,R,p);return;}
    int mid=l+r>>1;
    que(ls,l,mid,R,p);que(rs,mid+1,r,R,p);
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("1.in","r",stdin);
    //freopen("2.out","w",stdout);
#endif
    R(x0),R(y0);R(p),R(r),R(n);r*=r;
    int x,y;rep(i,1,n)R(x),R(y),R(a[i].m),R(a[i].p),R(a[i].r),a[i].r*=a[i].r,a[i].d=(ll)(x0-x)*(x0-x)+((ll)y0-y)*(y0-y);
    sort(a+1,a+1+n);
    build(1,1,n);
    for(q[0]=mp(r,p);l1<rr;){
    //  cout<<q[l1].X<<" "<<q[l1].Y<<endl;
        que(1,1,n,q[l1].X,q[l1].Y);l1++;
    }
    printf("%d\n",rr-1);
    return 0;
}
?
Time: ? ms, memory: ? KB
Verdict: ?
Input
?
Participant's output
?
Jury's answer
?
Checker comment
?
Diagnostics
?
Click to see test details