#include #include #define MAX 30 struct slide { int xmin,xmax,ymin,ymax; int np; char letter; int present[MAX]; }; struct point{ int x,y; }; int k,n,test=0,ind; struct point pvet[MAX]; struct slide svet[MAX]; int output[MAX]; int valid[MAX]; void count(){ int i,j; for (i=0; isvet[i].xmin) && (pvet[j].xsvet[i].ymin)) { svet[i].np++; svet[i].present[j] =1; } } } } int comp( const void *p1, const void *p2 ) { return ( (( struct slide* ) p1)->np - (( struct slide* ) p2)->np ); } void elimina(int ind) { int i; for(i=0; i1) printf("none"); else { while (k>0) { if (svet[0].np==1) { ind = cercap(); output[svet[0].letter-'A'] = ind+1; elimina(ind); if (k>1) shift(); k--; if (k>1) qsort(svet,k,sizeof(struct slide),comp); } else break; } for(i=0; i