Advertisement
Guest User

Untitled

a guest
Mar 24th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.14 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Main {
  4.     public static void main(String[] args) {
  5.         /////////////////////////////////////////////////
  6.         class People {
  7.             String name;
  8.             int num;
  9.             ArrayList<People> group = new ArrayList<People>();
  10.             People(String name) {
  11.                 this.name = name;
  12.                 num = -1;
  13.             }
  14.             People(String name, int num) {
  15.                 this.name = name;
  16.                 this.num = num;
  17.             }
  18.             @Override
  19.             public boolean equals(Object ppl) {
  20.                 People people = (People) ppl;
  21.                 if (name == null)
  22.                     return false;
  23.                 if (name == people.name)
  24.                     return true;
  25.                 return name.equals(people.name);
  26.             }
  27.             @Override
  28.             public String toString() {
  29.                 if (num != -1)
  30.                     return name + " " + num;
  31.                 else
  32.                     return name + " undefined";
  33.             }
  34.         }
  35.         /////////////////////////////////////////////////
  36.  
  37.         ArrayList<People> man = new ArrayList<People>();
  38.  
  39.         Scanner scanner = new Scanner(System.in);
  40.         int n = scanner.nextInt();
  41.         scanner.nextLine();
  42.  
  43.         for (int i = 0; i < n; i++) {
  44.             String[] group = new String[3];
  45.             for (int j = 0; j < 3; j++) {
  46.                 String name = scanner.next();
  47.                 group[j] = name;
  48.                 int pos = man.indexOf(new People(name));
  49.                 if (pos < 0) {
  50.                     if(name.equals("Isenbaev")) {
  51.                         man.add(new People("Isenbaev", 0));
  52.                     }
  53.                     else {
  54.                         man.add(new People(name));
  55.                     }
  56.                 }
  57.             }
  58.  
  59.             int A = man.indexOf(new People(group[0]));
  60.             int B = man.indexOf(new People(group[1]));
  61.             int C = man.indexOf(new People(group[2]));
  62.  
  63.             man.get(A).group.add(man.get(B));
  64.             man.get(A).group.add(man.get(C));
  65.  
  66.             man.get(B).group.add(man.get(A));
  67.             man.get(B).group.add(man.get(C));
  68.  
  69.             man.get(C).group.add(man.get(A));
  70.             man.get(C).group.add(man.get(B));
  71.         }
  72.  
  73.         ArrayDeque<People> queue = new ArrayDeque<People>();
  74.         int Isenbaev = man.indexOf(new People("Isenbaev"));
  75.         if(Isenbaev != -1)
  76.             queue.add(man.get(Isenbaev));
  77.  
  78.         while (!queue.isEmpty()) {
  79.             People v = queue.getFirst();
  80.             queue.pop();
  81.             for (People people : v.group) {
  82.                 if (people.num == -1) {
  83.                     people.num = v.num + 1;
  84.                     queue.add(people);
  85.                 }
  86.             }
  87.         }
  88.         Collections.sort(man, new Comparator<People>() {
  89.             @Override
  90.             public int compare(final People o1, final People o2) {
  91.                 return o1.name.compareTo(o2.name);
  92.             }
  93.         });
  94.         for (People people : man) {
  95.             System.out.println(people.toString());
  96.         }
  97.     }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement