Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int recursive_step(int best, int d, int dev[][2], int devices, int pos[][2], int np, int conns[][2], int nc, Intc *intc) {
- int i, j, k, count = 0;
- if (best == 0)
- return 0;
- for (i = 0; i < np; i++) {
- dev[d-1][0] = pos[i][0];
- dev[d-1][1] = pos[i][1];
- if (d < devices) {
- count = recursive_step(best, d+1, dev, devices, pos, np, conns, nc, intc);
- } else {
- for (j = 0; j < nc-1; j++) {
- for (k = j+1; k < nc; k++) {
- Point p1 = {dev[conns[j][0]-1][0], dev[conns[j][0]-1][1]};
- Point q1 = {dev[conns[j][1]-1][0], dev[conns[j][1]-1][1]};
- Point p2 = {dev[conns[k][0]-1][0], dev[conns[k][0]-1][1]};
- Point q2 = {dev[conns[k][1]-1][0], dev[conns[k][1]-1][1]};
- if (in_intc(intc, p1, q1, p2, q2))
- count ++;
- }
- }
- printf("----------\n");
- for (j = 0; j < devices; j++)
- printf("%d. (%d, %d)\n", j+1, dev[j][0], dev[j][1]);
- printf("----------\n");
- printf("%d\n", count);
- }
- if (count < best)
- best = count;
- }
- return best;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement