CSES - KILO 2018 5/5 - Results
Submission details
Task:Criminals
Sender:thierry
Submission time:2018-10-04 17:18:56 +0300
Language:Java
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.15 sdetails
#2ACCEPTED0.14 sdetails
#3ACCEPTED0.14 sdetails
#4ACCEPTED0.14 sdetails
#5ACCEPTED0.15 sdetails
#6ACCEPTED0.15 sdetails
#7ACCEPTED0.15 sdetails
#8ACCEPTED0.15 sdetails
#9ACCEPTED0.19 sdetails
#10ACCEPTED0.18 sdetails
#11ACCEPTED0.15 sdetails
#12ACCEPTED0.19 sdetails
#13ACCEPTED0.20 sdetails
#14ACCEPTED0.19 sdetails
#15ACCEPTED0.18 sdetails
#16ACCEPTED0.20 sdetails
#17ACCEPTED0.20 sdetails
#18ACCEPTED0.19 sdetails
#19ACCEPTED0.19 sdetails

Code

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.TreeSet;
import java.util.Arrays; 

public class Viikko5_c {

    static class FastReader {

        BufferedReader br;
        StringTokenizer st;

        public FastReader() {
            br = new BufferedReader(new InputStreamReader(System.in));
        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                } catch (IOException e) {
                }
            }
            return st.nextToken();
        }

        int nextInt() {
            return Integer.parseInt(next());
        }

        String nextLine() {
            String str = "";
            try {
                str = br.readLine();
            } catch (IOException e) {
            }
            return str;
        }
    }

    public static void main(String[] args) {
        FastReader s = new FastReader();
        int n = s.nextInt();
        Set<Integer> gangs = new TreeSet<>();
        Set<String> criminals = new TreeSet<>();
        boolean t = true;

        for (int i = 0; i < n; i++) {
            String a = s.next();
            int b = Integer.parseInt(a.substring(0, 3));
            int c = Integer.parseInt(a.substring(4));
            gangs.add(b);
            
            char[] luvut1 = String.valueOf(b).toCharArray();
            char[] luvut2 = String.valueOf(c).toCharArray();
            Arrays.sort(luvut1);
            Arrays.sort(luvut2);
            
            for (int j = 0; j < 3; j++) {
                if (luvut2[j] != luvut1[j]) {
                    t = false;
                }
            }
            if (criminals.contains(a)) {
                t = false;
            }
            criminals.add(a);
            
        }
        
        if (t) {
            System.out.println(gangs.size());
        } else {
            System.out.println("QAQ");
        }

    }

}

Test details

Test 1

Verdict: ACCEPTED

input
5
176-671
176-617
176-716
176-167
...

correct output
1

user output
1

Test 2

Verdict: ACCEPTED

input
3
123-321
123-312
312-123

correct output
2

user output
2

Test 3

Verdict: ACCEPTED

input
2
123-123
123-123

correct output
QAQ

user output
QAQ

Test 4

Verdict: ACCEPTED

input
2
123-123
123-456

correct output
QAQ

user output
QAQ

Test 5

Verdict: ACCEPTED

input
1
514-415

correct output
1

user output
1

Test 6

Verdict: ACCEPTED

input
8
384-843
384-348
384-834
895-958
...

correct output
3

user output
3

Test 7

Verdict: ACCEPTED

input
9
548-845
556-565
626-266
548-458
...

correct output
3

user output
3

Test 8

Verdict: ACCEPTED

input
1
966-696

correct output
1

user output
1

Test 9

Verdict: ACCEPTED

input
860
883-838
589-895
172-712
591-951
...

correct output
254

user output
254

Test 10

Verdict: ACCEPTED

input
766
869-968
486-468
295-925
166-616
...

correct output
265

user output
265

Test 11

Verdict: ACCEPTED

input
128
219-912
444-444
372-327
771-771
...

correct output
82

user output
82

Test 12

Verdict: ACCEPTED

input
392
625-625
129-291
451-451
277-772
...

correct output
QAQ

user output
QAQ

Test 13

Verdict: ACCEPTED

input
868
689-869
737-773
896-689
522-225
...

correct output
222

user output
222

Test 14

Verdict: ACCEPTED

input
533
548-485
143-143
714-471
299-299
...

correct output
295

user output
295

Test 15

Verdict: ACCEPTED

input
1000
128-182
755-755
196-169
674-476
...

correct output
QAQ

user output
QAQ

Test 16

Verdict: ACCEPTED

input
1000
365-635
476-746
199-919
648-468
...

correct output
QAQ

user output
QAQ

Test 17

Verdict: ACCEPTED

input
1000
474-744
428-284
532-235
288-288
...

correct output
425

user output
425

Test 18

Verdict: ACCEPTED

input
1000
346-436
573-735
981-918
582-582
...

correct output
QAQ

user output
QAQ

Test 19

Verdict: ACCEPTED

input
1000
128-128
585-558
487-874
261-162
...

correct output
208

user output
208