#include #include #define SQR(x) ((x)*(x)) // Druhá mocnina #define EPSILON (4.2e-10) // Podovnání s tolerancí #define EQ(x,y) (((x)+EPSILON>(y))&&((x)-EPSILON<(y))) #define MAX_N 10000 int N; // Počet kružnic double x[N], y[N], r[N]; // Kružnice int byl[N]; // Navštíveno? int v=0; // Vrcholy (průsečíky) int k=0; // Komponenty int pruseciku(int a, int b) // Kolik je mezi a a b průsečíků? { double d=sqrt(SQR(x[a]-x[b])+SQR(y[a]-y[b])); // Vzdálenost středů if (d>r[a]+r[b]) return 0; // Úplně mimo if ((d+r[a]0)) { if (i