#include <bits/stdc++.h>
using namespace std;
#define int long long
map<pair<int, int>, int> boom;
set<pair<int, int>> res;
bool judge(int x1, int y1, int x2, int y2, int r)
{
int a = abs(x1 - x2), b = abs(y1 - y2);
if (a > r || b > r)//防止爆longlong
return false;
return a * a + b * b <= r * r;
}
void dfs(int x, int y, int r)
{
for (int j = -r; j <= r; ++j)
for (int k = -r; k <= r; ++k)
{
int dx = x + j, dy = y + k;
if (judge(x, y, dx, dy, r))
{
if (boom.count({dx, dy}) && !res.count({dx, dy}))
{
res.insert({dx, dy});
dfs(dx, dy, boom[{dx, dy}]);
}
}
}
return;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m;
cin >> n >> m;
for (int i = 0; i < n; ++i)
{
int x, y, r;
cin >> x >> y >> r;
boom[{x, y}] = r;
}
for (int i = 0; i < m; ++i)
{
int x, y, r;
cin >> x >> y >> r;
for (int j = -r; j <= r; ++j)
for (int k = -r; k <= r; ++k)
{
int dx = x + j, dy = y + k;
if (judge(x, y, dx, dy, r))
{
if (boom.count({dx, dy}) && !res.count({dx, dy}))
{
res.insert({dx, dy});
dfs(dx, dy, boom[{dx, dy}]);
}
}
}
}
cout << res.size() << endl;
return 0;
}
0 回复
0 转发
0 喜欢
73 阅读



