meghana180799

Untitled

Aug 17th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3.  
  4. public class Solution {
  5. static int getParent(ArrayList<Integer> al,int i)
  6. { if(al.get(i)==i)//if v[i]==i return i (in c++)
  7. return i;
  8. while(al.get(i)!=i)
  9. i=al.get(i);
  10. return i;
  11. }
  12. static int index(ArrayList<String> n,String s)//if s is in names array, it returns index. Else -1
  13. { for(int i=0;i<n.size();i++)
  14. if(n.get(i).equals(s))
  15. return i;
  16. return -1;
  17. }
  18. public static void main(String[] args) {
  19. ArrayList<Integer> p=new ArrayList<Integer>();//vector of type integer in c++
  20. int[] f={15,12,13,4,19};
  21. ArrayList<String> names=new ArrayList<String>();//maintain a vector of strings in c++
  22. names.add("John");
  23. names.add("Jon");
  24. names.add("Chris");
  25. names.add("Kris");
  26. names.add("Christopher");
  27. for(int i=0;i<names.size();i++)
  28. p.add(i);
  29. String syn[][]=new String[4][2];
  30. syn[0][0]="John";
  31. syn[0][1]="Jon";
  32. syn[1][0]="Jon";
  33. syn[1][1]="Johnny";
  34. syn[2][0]="Chris";
  35. syn[2][1]="Kris";
  36. syn[3][0]="Chris";
  37. syn[3][1]="Christopher";
  38. for(int i=0;i<4;i++)
  39. { int a=index(names,syn[i][0]);
  40. int b=index(names,syn[i][1]);
  41. int l=names.size();
  42. if(a==-1 && b==-1)
  43. { names.add(syn[i][0]);
  44. p.add(l+1);
  45. names.add(syn[i][1]);
  46. p.add(l+1);
  47. }
  48. else if(a==-1)
  49. { names.add(syn[i][0]);
  50. p.add(p.get(b));
  51. }
  52. else if(b==-1)
  53. { names.add(syn[i][1]);
  54. p.add(p.get(a));
  55. }
  56. else
  57. { if(p.get(a)==a && p.get(b)==b)
  58. p.set(b,a);
  59. else if(p.get(a)==a)
  60. p.set(a,b);
  61. else
  62. p.set(b,a);
  63. }
  64. }
  65. int l=p.size();
  66. int[] temp=new int[l];//initialise all values to 0
  67. for(int i=0;i<l;i++)
  68. { if(getParent(p,i)==i && i<f.length)
  69. temp[i]+=f[i];
  70. else if(getParent(p,i)!=i && i<f.length)
  71. temp[getParent(p,i)]+=f[i];
  72. else
  73. continue;
  74. }
  75. for(int i=0;i<l;i++)
  76. if(temp[i]!=0)
  77. System.out.println(names.get(i)+" "+temp[i]);
  78. }
  79. }
Add Comment
Please, Sign In to add comment