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

Compiler report

Note: input/Kisa51.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Code

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
//package kisa51;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Scanner;

/**
 *
 * @author reetta
 */
public class Kisa51 {

    /**
     * @param args the command line arguments
     */
    //task C
    
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        s.nextLine();
        boolean fail=false;
        
        HashSet<String> mems = new HashSet(); //unique members
        HashSet<String> gangs = new HashSet();
        
        for (int i = 0; i < n; i++) {
            String mem = s.nextLine();
            //unique
            if(mems.contains(mem)){
                fail = true;
                break;
            }else{
                mems.add(mem);
            }
            //gang
            if(!gangs.contains(mem.substring(0,3))){
                gangs.add(mem.substring(0,3));
            }
            //valid
            if(!valid(mem)){
                fail = true;
                break;
            }
            
            
        }
        
        
        
        //result
        if(!fail){
            System.out.println(gangs.size());
        }else{
            System.out.println("QAQ");
        }
                    
        
    }
    
    public static boolean valid(String mem){
        if(mem.length()!= 7){
            return false;
        }
        
        ArrayList<Character> a = new ArrayList<>();
        a.add(mem.charAt(0));
        a.add(mem.charAt(1));
        a.add(mem.charAt(2));
        ArrayList<Character> b = new ArrayList<>();
        b.add(mem.charAt(4));
        b.add(mem.charAt(5));
        b.add(mem.charAt(6));
        
        Collections.sort(a);
        Collections.sort(b);
        
        for(int i = 0; i < 3; i++){
            if(!a.get(i).equals(b.get(i))){
                return false;
            }
        }
        return true;
    }
    
    
    
}

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