Advertisement
SchrodZzz

q

Nov 13th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.38 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.ArrayList;
  5. import java.util.StringTokenizer;
  6.  
  7. public class solverRR {
  8.     public static void main (String[] args) {
  9.         FastScanner reader = new FastScanner();
  10.         int players = reader.nextInt();
  11.         int operations = reader.nextInt();
  12.         Node[] playerInf = new Node[players];
  13.         ArrayList<ArrayList<Integer>> Guilds = new ArrayList <>();
  14.         for (int i = 0; i < players; i++) {
  15.             playerInf[i] = new Node(i,0);
  16.             ArrayList<Integer> tmp = new ArrayList <>();
  17.             tmp.add(i);
  18.             Guilds.add(tmp);
  19.         }
  20.  
  21.         int curExp;
  22.         int tmp1;
  23.         int tmp2;
  24.         int tmpSize;
  25.         for (int i = 0; i < operations; i++) {
  26.             switch (reader.next()) {
  27.                 case "join": {
  28.                     tmp1 = playerInf[reader.nextInt()-1].getGuild();
  29.                     tmp2 = playerInf[reader.nextInt()-1].getGuild();
  30.                     if (tmp1 == tmp2) {
  31.                         break;
  32.                     }
  33.                     tmpSize = Guilds.size();
  34.                     ArrayList<Integer> tmp = new ArrayList <>();
  35.                     for (int idx : Guilds.get(tmp1)) {
  36.                         tmp.add(idx);
  37.                         playerInf[idx].changeGuild(tmpSize);
  38.                     }
  39.                     for (int idx : Guilds.get(tmp2)) {
  40.                         tmp.add(idx);
  41.                         playerInf[idx].changeGuild(tmpSize);
  42.                     }
  43.                     Guilds.add(tmp);
  44.                     break;
  45.                 }
  46.                 case "add": {
  47.                     tmp1 = playerInf[reader.nextInt()-1].getGuild();
  48.                     curExp = reader.nextInt();
  49.                     for (int idx: Guilds.get(tmp1)) {
  50.                         playerInf[idx].addExp(curExp);
  51.                     }
  52.                     break;
  53.                 }
  54.                 case "get": {
  55.                     System.out.println(playerInf[reader.nextInt()-1].getExp());
  56.                     break;
  57.                 }
  58.             }
  59.         }
  60.     }
  61.  
  62.     static class FastScanner {
  63.         BufferedReader br;
  64.         StringTokenizer st;
  65.  
  66.         public FastScanner() {
  67.             br = new BufferedReader(new InputStreamReader(System.in));
  68.         }
  69.  
  70.         String next() {
  71.             while (st == null || !st.hasMoreElements()) {
  72.                 try {
  73.                     st = new StringTokenizer(br.readLine());
  74.                 } catch (IOException e) {
  75.                     e.printStackTrace();
  76.                 }
  77.             }
  78.             return st.nextToken();
  79.         }
  80.  
  81.         int nextInt() {
  82.             return Integer.parseInt(next());
  83.         }
  84.  
  85.         String nextLine() {
  86.             String str = "";
  87.             try {
  88.                 str = br.readLine();
  89.             } catch (IOException e) {
  90.                 e.printStackTrace();
  91.             }
  92.             return str;
  93.         }
  94.     }
  95. }
  96.  
  97. class Node {
  98.     private  int guild;
  99.     private  int exp;
  100.     Node(int b, int c) {
  101.         this.guild = b;
  102.         this.exp = c;
  103.     }
  104.  
  105.     int getGuild(){
  106.         return guild;
  107.     }
  108.  
  109.     int getExp(){
  110.         return exp;
  111.     }
  112.  
  113.     void changeGuild(int x) {
  114.         guild = x;
  115.     }
  116.  
  117.     void addExp(int x) {
  118.         exp += x;
  119.     }
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement