Advertisement
SchrodZzz

qq

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