hiho week 147 register

Ended

Participants:514

Verdict:Accepted
Score:100 / 100
Submitted:2017-04-23 21:32:24

Lang:Java

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.util.*;
public class Main {
    private static final int SUBJECTS_NUM = 5;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[][] search_ranks = new int[SUBJECTS_NUM][n]; // ij
        int[][] ranks = new int[SUBJECTS_NUM][n];        // ij
        for (int i = 0i < ni++) {
            for (int j = 0j < SUBJECTS_NUMj++) {
                int rank = sc.nextInt() - 1;
                search_ranks[j][rank= i;
                ranks[j][i= rank;
            }
        }
        BitSet[][] bitSets = new BitSet[SUBJECTS_NUM][n]; // ij
        for (int i = 0i < SUBJECTS_NUMi++) {
            bitSets[i][0= new BitSet(n);
        }
        for (int i = 0i < SUBJECTS_NUMi++) {
            for (int j = 1j < nj++) {
                bitSets[i][j= (BitSetbitSets[i][j - 1].clone();
                bitSets[i][j].set(search_ranks[i][j - 1]);
            }
        }
        for (int i = 0i < ni++) {
            int rank1 = ranks[0][i];
            BitSet bitSet = (BitSetbitSets[0][rank1].clone();
            for (int j = 1j < SUBJECTS_NUMj++) {
                bitSet.and(bitSets[j][ranks[j][i]]);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX