#include #include #define MAX 100 struct t_interval { double meze[2]; // krajni body intervalu int barva; // barva intervalu }; struct t_bod { int intrvl; // interval, jehoz je krajnim bodem int mez; // je bod levy okraj (0), nebo pravy (1) }; struct t_interval interval[MAX]; // seznam vsech intervalu struct t_bod bod[2*MAX]; // seznam vsech krajnich bodu int colorstack[MAX], top; // zasobnik barev int i,n,barev; int cmp( struct t_bod *e1, struct t_bod *e2 ) // pomocna fce pro qsort { int d=interval[e1->intrvl].meze[e1->mez] - interval[e2->intrvl].meze[e2->mez]; return (d==0? e2->mez - e1->mez : d ); } int main() { // nejprve nacteme vsechny intervaly, a jejich pocet (n), a usporadame // si v poli bod jejich krajni body do neklesajici posloupnosti scanf("%d",&n); for (i=0;i