#include #include #define X first #define Y second #define PB push_back using namespace std; typedef long long ll; const int N = 1e3 + 50; int x[N], y[N], r[N], n; vector < int > v[N]; int col[N], bip = 1, cnt[3]; void dfs(int x, int cur) { if(col[x]) { bip &= col[x] == cur; return; } col[x] = cur; cnt[cur]++; for(int y : v[x]) dfs(y, 3 - cur); } int main(){ scanf("%d", &n); for(int i = 0;i< n;i++) { scanf("%d%d%d", x + i, y + i, r + i); } for(int i = 0;i < n;i++) { for(int j = i + 1;j < n;j++) { ll dis = (ll)(x[i] - x[j]) * (x[i] - x[j]) + (ll)(y[i] - y[j]) * (y[i] - y[j]); if(dis == (ll)(r[i] + r[j]) * (r[i] + r[j])) { v[i].PB(j), v[j].PB(i); } } } for(int i = 0;i < n;i++) { if(col[i]) continue; bip = 1; cnt[1] = 0; cnt[2] = 0; dfs(i, 1); if(bip && cnt[1] != cnt[2]) { printf("YES\n"); return 0; } } printf("NO\n"); return 0; }