Advertisement
Guest User

Untitled

a guest
May 29th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define MAX 112
  5.  
  6. void le(int amizades[][MAX], int m) {
  7. int i, j;
  8. int count;
  9. for (count = 0; count < m; count++) {
  10. scanf(" %d %d",&i,&j);
  11. amizades[i][j] = amizades[j][i] = 1;
  12. }
  13. }
  14.  
  15. void separa(int amizades[][MAX], int n, int lado[], int v, int ladoAtual) {
  16. int ladoProx, i;
  17.  
  18. lado[v] = ladoAtual;
  19.  
  20. ladoProx = (-1)*ladoAtual;
  21.  
  22. for (i = 0; i < n; i++) {
  23. if(amizades[v][i] && !lado[i]) {
  24. separa(amizades, n, lado, i, ladoProx);
  25. }
  26. }
  27. }
  28.  
  29. int confere(int amizades[][MAX], int n, int lado[]) {
  30. int i, j;
  31. for (i = 0; i < n; i++) {
  32. for (j = 0; j < i; j++) {
  33. if ((amizades[i][j] && (lado[i] == lado[j]))) return 1;
  34. }
  35. }
  36. return 0;
  37. }
  38.  
  39. int main() {
  40. int amizades[MAX][MAX], lado[MAX], m, n, ntest = 0;
  41. int i;
  42.  
  43. while (scanf(" %d %d", &n, &m) != EOF) {
  44. memset(amizades, 0, sizeof(amizades));
  45. memset(lado, 0, sizeof(lado));
  46. le(amizades, m);
  47.  
  48. for(i = 0; i < n; i++) {
  49. if(!lado[i]) separa(amizades, n, lado, i, -1);
  50. }
  51.  
  52. if(ntest) putchar('\n');
  53. printf("Instancia %d\n",++ntest);
  54. if(confere(amizades,n,lado)) printf("nao\n");
  55. else printf("sim\n");
  56.  
  57. }
  58. return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement