Pagini recente » Cod sursa (job #2975928) | Cod sursa (job #1870553) | Cod sursa (job #2624008) | Cod sursa (job #1170399) | Cod sursa (job #2558445)
#include <fstream>
#include <cmath>
#include <algorithm>
#define nmax 10002
#define ll long long
using namespace std;
ifstream fin("grendizer.in");
ofstream fout("grendizer.out");
int n,m;
ll x,y,r;
struct pct
{
ll x,y;
ll sMod;
}obct[nmax];
bool cmp(pct a,pct b)
{
return a.sMod<b.sMod;
}
int capatSt(ll val)
{
int st=1,dr=n,sol=0;
while(st<=dr)
{
int mij=(st+dr)/2;
if(obct[mij].sMod==val)
{
sol=mij;
dr=mij-1;
}
else if(obct[mij].sMod<val)
st=mij+1;
else
dr=mij-1;
}
return sol;
}
int capatDr(ll val)
{
int st=1,dr=n,sol=0;
while(st<=dr)
{
int mij=(st+dr)/2;
if(obct[mij].sMod==val)
{
sol=mij;
st=mij+1;
}
else if(obct[mij].sMod>val)
dr=mij-1;
else
st=mij+1;
}
return sol;
}
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
{
fin>>obct[i].x>>obct[i].y;
obct[i].sMod=abs(obct[i].x+obct[i].y);
}
sort(obct+1,obct+n+1,cmp);
for(int i=1;i<=m;i++)
{
fin>>x>>y>>r;
int ans=0;
for(int j=1;j<=n && obct[j].sMod<=r;j++)
if(abs(x-obct[j].x)+abs(y-obct[j].y)==r)
ans++;
/*ll val=r-abs(x+y);
int cSt=capatSt(val);
int cDr=capatDr(val);
if(cSt==0 && cDr==0)
fout<<"0\n";
else
fout<<cDr-cSt+1<<"\n";*/
fout<<ans<<"\n";
}
return 0;
}