[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/subham500071430/JavaProgramming/patch-2/HackerRank/Twenty.java [Back]  [Original]

/*
 After each operation, print the respective number of set bits in BitSet  and BitSet  as  space-separated integers on a new line.
Sample Input
5 4
AND 1 2
SET 1 4
FLIP 2 2
OR 2 1
Sample Output
0 0
1 0
1 1
1 2

 */
package HackerRank;

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Twenty {

    public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
        
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt(); 
        int m = sc.nextInt(); 
        
        BitSet[] bitsets = new BitSet[3]; 
        bitsets[1] = new BitSet(n);
        bitsets[2] = new BitSet(n);
        
        for (int i = 0; i < m; i++) {
            String op = sc.next();
            int set1 = sc.nextInt();
            int set2 = sc.nextInt();
            
            if (op.equals("AND")) {
                bitsets[set1].and(bitsets[set2]);
            } else if (op.equals("OR")) {
                bitsets[set1].or(bitsets[set2]);
            } else if (op.equals("XOR")) {
                bitsets[set1].xor(bitsets[set2]);
            } else if (op.equals("FLIP")) {
                bitsets[set1].flip(set2);
            } else if (op.equals("SET")) {
                bitsets[set1].set(set2);
            }
            
            System.out.println(bitsets[1].cardinality() + " " + bitsets[2].cardinality());
        }
        
        sc.close();
    }
}

Web Proxy Viewer  |  New URL  |  Original Page