#include #include #include #include #include #include #include #include #include #include using namespace std; const int MAXN=1010; struct Node { int x,y; int r; }; bool cmp(Node a,Node b) { return a.rnode[i].r*node[i].r&&d2>node[i].r*node[i].r)continue; if(d1node1[j].r && d<(node1[i].r-node1[j].r)*(node1[i].r-node1[j].r)) dp1[i]=max(dp1[i],dp1[j]+1); } ans1=max(ans1,dp1[i]); } for(int i=0;inode2[j].r && d<(node2[i].r-node2[j].r)*(node2[i].r-node2[j].r)) dp2[i]=max(dp2[i],dp2[j]+1); } ans2=max(ans2,dp2[i]); } int ans=max(ans1,ans2); for(int i=0;i(node1[i].r+node2[j].r)*(node1[i].r+node2[j].r)) ans=max(ans,dp1[i]+dp2[j]); } printf("%d\n",ans); } return 0; }