#include #define Nmax 1005 using namespace std; vector v[Nmax]; int x[Nmax], y[Nmax], r[Nmax], viz[Nmax], n, nr[5]; bool bip; void dfs(int x, int side) { nr[side]++; viz[x] = side; for(auto it:v[x]) { if (viz[it] == viz[x]) bip = false; else if(viz[it] == 0) dfs(it, 3 - side); } } int main() { cin >> n; for(int i=1;i<=n;i++) cin >> x[i] >> y[i] >> r[i]; for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) { long long dx = x[i] - x[j]; long long dy = y[i] - y[j]; long long dr = r[i] + r[j]; if(dx * dx + dy * dy == dr * dr) { v[i].push_back(j); v[j].push_back(i); } } bool ok = false; for(int i=1;i<=n;i++) if(viz[i] == 0) { nr[1] = nr[2] = 0; bip = true; dfs(i, 1); if(bip && nr[1] != nr[2]) ok = true; } if(ok) cout << "YES"; else cout << "NO"; return 0; }