CSES - KILO 2017 5/5 - Results
Submission details
Task:Battle Simulation
Sender:Viljamin opetuslapset
Submission time:2017-10-03 17:13:38 +0300
Language:Java
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.14 sdetails
#2ACCEPTED0.32 sdetails
#3ACCEPTED0.13 sdetails
#4ACCEPTED0.16 sdetails
#5ACCEPTED0.14 sdetails
#6ACCEPTED0.17 sdetails
#7ACCEPTED0.18 sdetails
#8ACCEPTED0.18 sdetails
#9ACCEPTED0.19 sdetails
#10ACCEPTED0.19 sdetails
#11ACCEPTED0.22 sdetails
#12ACCEPTED0.26 sdetails
#13ACCEPTED0.23 sdetails
#14ACCEPTED0.23 sdetails
#15ACCEPTED0.52 sdetails
#16ACCEPTED0.12 sdetails

Code

import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Deque;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Stack;

/**
 *
 * @author juliuuus
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        IO io = new IO();

        String lol = io.next();
//        String lol = "RBLRLRBL";

        ArrayDeque<Character> three = new ArrayDeque<>();

        HashMap<Character, Integer> amounts = new HashMap<>();
        amounts.put('R', 0);
        amounts.put('L', 0);
        amounts.put('B', 0);

        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < lol.length(); i++) {
            char c = lol.charAt(i);
            if (three.size() < 3) {
                amounts.put(c, amounts.get(c) + 1);
                three.add(c);
                continue;
            }
            if (amounts.get('R') == 1 && amounts.get('L') == 1 && amounts.get('B') == 1) {
                sb.append('C');
                three.clear();
                amounts.put('R', 0);
                amounts.put('L', 0);
                amounts.put('B', 0);
                i--;
            } else {
                char f = three.pop();
                amounts.put(f, amounts.get(f) - 1);

                if (f == 'R') {
                    sb.append('S');
                }
                if (f == 'B') {
                    sb.append('K');
                }
                if (f == 'L') {
                    sb.append('H');
                }

                three.add(c);
                amounts.put(c, amounts.get(c) + 1);
            }
        }

        if (amounts.get('R') == 1 && amounts.get('L') == 1 && amounts.get('B') == 1) {
            sb.append('C');
            three.clear();
        }

        while (!three.isEmpty()) {
            char f = three.pop();
            amounts.put(f, amounts.get(f) - 1);

            if (f == 'R') {
                sb.append('S');
            }
            if (f == 'B') {
                sb.append('K');
            }
            if (f == 'L') {
                sb.append('H');
            }
        }

        io.println(sb.toString());

        io.close();

    }

}

Test details

Test 1

Verdict: ACCEPTED

input
BL

correct output
KH

user output
KH

Test 2

Verdict: ACCEPTED

input
LRBRLBBLRRBLLBRRBLBRLLRBBRLBRL...

correct output
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...

user output
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...

Test 3

Verdict: ACCEPTED

input
L

correct output
H

user output
H

Test 4

Verdict: ACCEPTED

input
LBR

correct output
C

user output
C

Test 5

Verdict: ACCEPTED

input
BBBLRLLLBB

correct output
KKCHHHKK

user output
KKCHHHKK

Test 6

Verdict: ACCEPTED

input
BLRBBBRBRRBLLLBRRRBBBBLLRBRBBL...

correct output
CKKKSKSCHCSSKKKKHCSKKHHCCKHKHK...

user output
CKKKSKSCHCSSKKKKHCSKKHHCCKHKHK...

Test 7

Verdict: ACCEPTED

input
RLBBBBRRRBLRLRBBRBLBLBRLLRRRRL...

correct output
CKKKSSCSCKCKCHHSSSSHHKKHHCSCHC...

user output
CKKKSSCSCKCKCHHSSSSHHKKHHCSCHC...

Test 8

Verdict: ACCEPTED

input
BBLRBRRLBBRRLBLLBLBRRRRRLBLLRL...

correct output
KCKSCKSCHHKCSSSCHHCHHCKKSSHSCC...

user output
KCKSCKSCHHKCSSSCHHCHHCKKSSHSCC...

Test 9

Verdict: ACCEPTED

input
BBLRLRBBBBLRBBRRRRRBBLRLRBBBBL...

correct output
KCCKKCKKSSSSSKCCKKCCCSCCHHKCHC...

user output
KCCKKCKKSSSSSKCCKKCCCSCCHHKCHC...

Test 10

Verdict: ACCEPTED

input
LBLRRRBRRLLRLLRBBBRBRLRRLBRLLB...

correct output
HCSSKSSHHSHCKKSCSCSHCSKKKHHKKK...

user output
HCSSKSSHHSHCKKSCSCSHCSKKKHHKKK...

Test 11

Verdict: ACCEPTED

input
LBRBLRRRRLRLLBBLRRRBBBLLBRBBLR...

correct output
CCSSSHSHHKCSSKKKHCKCCCHKHHKKCC...

user output
CCSSSHSHHKCSSKKKHCKCCCHKHHKKCC...

Test 12

Verdict: ACCEPTED

input
BRRLRBBBRBRBRLBRLBBBRBLBLBBLBB...

correct output
KSSCKKSKSCCKKKCKHKKHKKKKCKKKSS...

user output
KSSCKKSKSCCKKKCKHKKHKKKKCKKKSS...

Test 13

Verdict: ACCEPTED

input
LLRRLLRRLRRLBBRBBRLLRBRLLRRLBB...

correct output
HHSSHHSSHSCKSKCCSHHSCKSCKKHHHS...

user output
HHSSHHSSHSCKSKCCSHHSCKSCKKHHHS...

Test 14

Verdict: ACCEPTED

input
LBRRRBRBLLBRRLBLBLBBLRBBRBLBBL...

correct output
CSSKCCCHKHKCKKCKCCSSHHKCSKCKCS...

user output
CSSKCCCHKHKCKKCKCCSSHHKCSKCKCS...

Test 15

Verdict: ACCEPTED

input
BBBLRLLLBBBLRBBBRBRRBLLLBRRRBB...

correct output
KKCHHHKKCKKKSKSCHCSSKKKKHCSKKH...

user output
KKCHHHKKCKKKSKSCHCSSKKKKHCSKKH...

Test 16

Verdict: ACCEPTED

input
LBRLRBBLRBRLRLBRBL

correct output
CCCCCC

user output
CCCCCC