Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. int recursive_step(int best, int d, int dev[][2], int devices, int pos[][2], int np, int conns[][2], int nc, Intc *intc) {
  2. int i, j, k, count = 0;
  3. if (best == 0)
  4. return 0;
  5. for (i = 0; i < np; i++) {
  6. dev[d-1][0] = pos[i][0];
  7. dev[d-1][1] = pos[i][1];
  8.  
  9. if (d < devices) {
  10. count = recursive_step(best, d+1, dev, devices, pos, np, conns, nc, intc);
  11. } else {
  12. for (j = 0; j < nc-1; j++) {
  13. for (k = j+1; k < nc; k++) {
  14. Point p1 = {dev[conns[j][0]-1][0], dev[conns[j][0]-1][1]};
  15. Point q1 = {dev[conns[j][1]-1][0], dev[conns[j][1]-1][1]};
  16. Point p2 = {dev[conns[k][0]-1][0], dev[conns[k][0]-1][1]};
  17. Point q2 = {dev[conns[k][1]-1][0], dev[conns[k][1]-1][1]};
  18. if (in_intc(intc, p1, q1, p2, q2))
  19. count ++;
  20. }
  21. }
  22. printf("----------\n");
  23. for (j = 0; j < devices; j++)
  24. printf("%d. (%d, %d)\n", j+1, dev[j][0], dev[j][1]);
  25. printf("----------\n");
  26. printf("%d\n", count);
  27. }
  28. if (count < best)
  29. best = count;
  30. }
  31. return best;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement