#include #include using namespace std; const int MAX_N = 1000; int n; long long x[MAX_N], y[MAX_N], r[MAX_N]; int viz[MAX_N], color[MAX_N]; int failed = 0; int cnt[2]; void dfs(int u) { viz[u] = 1; cnt[color[u]]++; for (int v = 0; v < n; v++) { if (v == u || (x[u] - x[v]) * (x[u] - x[v]) + (y[u] - y[v]) * (y[u] - y[v]) != (r[u] + r[v]) * (r[u] + r[v])) continue; if (!viz[v]) { color[v] = !color[u]; dfs(v); } else { if (color[v] == color[u]) failed = 1; } } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; for (int i = 0; i < n; i++) { cin >> x[i] >> y[i] >> r[i]; } for (int i = 0; i < n; i++) { if (viz[i]) continue; cnt[0] = cnt[1] = 0; failed = 0; dfs(i); //cout << i << ' ' << result << ' ' << cnt[0] << ' ' << cnt[1] << endl; if (!failed && cnt[0] != cnt[1]) { cout << "YES" << endl; return 0; } } cout << "NO" << endl; return 0; }