CSES - KILO 2016 1/5 - Results
Submission details
Task:Decrypt
Sender:PILIPOJAT!!
Submission time:2016-09-06 19:28:54 +0300
Language:Java
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.10 sdetails
#2ACCEPTED0.10 sdetails
#3--details
#40.10 sdetails
#5ACCEPTED0.10 sdetails
#6ACCEPTED0.10 sdetails
#70.10 sdetails
#8ACCEPTED0.10 sdetails
#9--details
#100.10 sdetails
#11ACCEPTED0.10 sdetails
#12ACCEPTED0.10 sdetails
#130.10 sdetails
#14ACCEPTED0.11 sdetails
#15--details
#160.10 sdetails
#17ACCEPTED0.10 sdetails
#18ACCEPTED0.10 sdetails
#19ACCEPTED0.10 sdetails
#20ACCEPTED0.10 sdetails
#21--details
#220.10 sdetails
#23ACCEPTED0.09 sdetails
#24ACCEPTED0.13 sdetails
#25ACCEPTED0.10 sdetails
#26ACCEPTED0.10 sdetails
#27--details
#280.10 sdetails
#29ACCEPTED0.10 sdetails
#30ACCEPTED0.10 sdetails

Code

import java.io.*;
import java.util.*;

/**
 * Created by migho on 6.9.2016.
 */
public class Main {

    //nopqrstuvwxyzabcdefghijklm

    //tbbqvqrn

    public static void main(String[] argv) {
        IO io = new IO();

        // characters
        char[] f = io.next().toCharArray();

        //rounds
        int k = io.nextInt();

        //encrypted message
        char[] encryptedString = io.next().toCharArray();

        char[] alphabet = "abcdefghijklmnopqrstuvwxyz".toCharArray();

        validate(f.clone());
        
        Hashtable<Character, Character> data = new Hashtable<>();
        for(int i = 0; i < f.length; i++) {
            data.put(f[i], alphabet[i]);
        }
        for(int i = 0; i < k; i++) {
            for(int j = 0; j < encryptedString.length; j++) {
                encryptedString[j] = data.get(encryptedString[j]);
            }
        }
        System.out.println(new String(encryptedString));
    }

    private static void validate(char[] c) {
        Arrays.sort(c);
        char cur = c[0];
        for(int i = 1; i < c.length; i++) {
            if(cur == c[i]) {
                System.out.println("impossible");
                System.exit(0);
            }
            cur = c[i];
        }
    }

    private static class IO extends PrintWriter {
        private InputStreamReader r;
        private static final int BUFSIZE = 1 << 15;
        private char[] buf;
        private int bufc;
        private int bufi;
        private StringBuilder sb;

        public IO() {
            super(new BufferedOutputStream(System.out));
            r = new InputStreamReader(System.in);

            buf = new char[BUFSIZE];
            bufc = 0;
            bufi = 0;
            sb = new StringBuilder();
        }

        private void fillBuf() throws IOException {
            bufi = 0;
            bufc = 0;
            while(bufc == 0) {
                bufc = r.read(buf, 0, BUFSIZE);
                if(bufc == -1) {
                    bufc = 0;
                    return;
                }
            }
        }

        private boolean pumpBuf() throws IOException {
            if(bufi == bufc) {
                fillBuf();
            }
            return bufc != 0;
        }

        private boolean isDelimiter(char c) {
            return c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '\f';
        }

        private void eatDelimiters() throws IOException {
            while(true) {
                if(bufi == bufc) {
                    fillBuf();
                    if(bufc == 0) throw new RuntimeException("IO: Out of input.");
                }

                if(!isDelimiter(buf[bufi])) break;
                ++bufi;
            }
        }

        public String next() {
            try {
                sb.setLength(0);

                eatDelimiters();
                int start = bufi;

                while(true) {
                    if(bufi == bufc) {
                        sb.append(buf, start, bufi - start);
                        fillBuf();
                        start = 0;
                        if(bufc == 0) break;
                    }

                    if(isDelimiter(buf[bufi])) break;
                    ++bufi;
                }

                sb.append(buf, start, bufi - start);

                return sb.toString();
            } catch(IOException e) {
                throw new RuntimeException("IO.next: Caught IOException.");
            }
        }

        public int nextInt() {
            try {
                int ret = 0;

                eatDelimiters();

                boolean positive = true;
                if(buf[bufi] == '-') {
                    ++bufi;
                    if(!pumpBuf()) throw new RuntimeException("IO.nextInt: Invalid int.");
                    positive = false;
                }

                boolean first = true;
                while(true) {
                    if(!pumpBuf()) break;
                    if(isDelimiter(buf[bufi])) {
                        if(first) throw new RuntimeException("IO.nextInt: Invalid int.");
                        break;
                    }
                    first = false;

                    if(buf[bufi] >= '0' && buf[bufi] <= '9') {
                        if(ret < -214748364) throw new RuntimeException("IO.nextInt: Invalid int.");
                        ret *= 10;
                        ret -= (int)(buf[bufi] - '0');
                        if(ret > 0) throw new RuntimeException("IO.nextInt: Invalid int.");
                    } else {
                        throw new RuntimeException("IO.nextInt: Invalid int.");
                    }

                    ++bufi;
                }

                if(positive) {
                    if(ret == -2147483648) throw new RuntimeException("IO.nextInt: Invalid int.");
                    ret = -ret;
                }

                return ret;
            } catch(IOException e) {
                throw new RuntimeException("IO.nextInt: Caught IOException.");
            }
        }

        public long nextLong() {
            try {
                long ret = 0;

                eatDelimiters();

                boolean positive = true;
                if(buf[bufi] == '-') {
                    ++bufi;
                    if(!pumpBuf()) throw new RuntimeException("IO.nextLong: Invalid long.");
                    positive = false;
                }

                boolean first = true;
                while(true) {
                    if(!pumpBuf()) break;
                    if(isDelimiter(buf[bufi])) {
                        if(first) throw new RuntimeException("IO.nextLong: Invalid long.");
                        break;
                    }
                    first = false;

                    if(buf[bufi] >= '0' && buf[bufi] <= '9') {
                        if(ret < -922337203685477580L) throw new RuntimeException("IO.nextLong: Invalid long.");
                        ret *= 10;
                        ret -= (long)(buf[bufi] - '0');
                        if(ret > 0) throw new RuntimeException("IO.nextLong: Invalid long.");
                    } else {
                        throw new RuntimeException("IO.nextLong: Invalid long.");
                    }

                    ++bufi;
                }

                if(positive) {
                    if(ret == -9223372036854775808L) throw new RuntimeException("IO.nextLong: Invalid long.");
                    ret = -ret;
                }

                return ret;
            } catch(IOException e) {
                throw new RuntimeException("IO.nextLong: Caught IOException.");
            }
        }

        public double nextDouble() {
            return Double.parseDouble(next());
        }
    }

}

Test details

Test 1

Verdict: ACCEPTED

input
egkpmqujbxhiatorvznwcfynds 564...

correct output
impossible

user output
impossible

Test 2

Verdict: ACCEPTED

input
pdabvolaobzbaaisrntdtwluwf 2
oooooooooooooooooooooooooooooo...

correct output
impossible

user output
impossible

Test 3

Verdict:

input
xtaoqlsjkezrcvinwfmbyhdgpu 872...

correct output
mmm

user output
(empty)

Test 4

Verdict:

input
wlcpatbrudxhofijgskqgevymz 1
joojjojjjoojjjjoojjojoojojoojj...

correct output
pmmppmpppmmppppmmppmpmmpmpmmpp...

user output
impossible

Test 5

Verdict: ACCEPTED

input
tjyivkaulcjnehvtilatxjxmxd 300...

correct output
impossible

user output
impossible

Test 6

Verdict: ACCEPTED

input
tonbvkcqilfjghszxpwmdureay 2
nnv

correct output
ggx

user output
ggx

Test 7

Verdict:

input
edmxaqolzisvnrfkcgwehbtjpu 179...

correct output
oooooooooooooooooooooooooooooo...

user output
impossible

Test 8

Verdict: ACCEPTED

input
hrygatmxebcusinbdplunukuai 1
i

correct output
impossible

user output
impossible

Test 9

Verdict:

input
nsuftdzbmkqepgihlyxrvwajoc 724...

correct output
offfofofofofoffooofofooofffffo...

user output
(empty)

Test 10

Verdict:

input
kbybextsniougrdmqpwfahzlcv 2
stlooyhhdfzpspsospvhdpedouqsyr...

correct output
vmfaayzzkgsnvnvavnwzknekaxqvyi...

user output
impossible

Test 11

Verdict: ACCEPTED

input
dugyojozcpjlwxepebzhfkqlzc 801...

correct output
impossible

user output
impossible

Test 12

Verdict: ACCEPTED

input
kibphqeygnmsdvawzrfcuotxjl 2
ggggggggggggggggggggggggggg

correct output
bbbbbbbbbbbbbbbbbbbbbbbbbbb

user output
bbbbbbbbbbbbbbbbbbbbbbbbbbb

Test 13

Verdict:

input
pstlbyjnovmekdqzrhwxwgcfai 315...

correct output
mmm

user output
impossible

Test 14

Verdict: ACCEPTED

input
uukjvcscfohyvqomdfdlysnuoe 2
eheeheheeheheeheeheeeehhhheehh...

correct output
impossible

user output
impossible

Test 15

Verdict:

input
pkwsxbvdgmjutiyfqrzhealnoc 822...

correct output
hbkxkmhinhmwhwthbmhutgnkgoywho...

user output
(empty)

Test 16

Verdict:

input
yqxvbohrlifmzdtwgejpcanuse 1
fl

correct output
ki

user output
impossible

Test 17

Verdict: ACCEPTED

input
gauouzffisuxjtuufqdappivxv 205...

correct output
impossible

user output
impossible

Test 18

Verdict: ACCEPTED

input
ovqzprxiluehkndsmtyafbwgjc 2
oo

correct output
tt

user output
tt

Test 19

Verdict: ACCEPTED

input
goqbyzivahrxnjwtdjluepsmkf 701...

correct output
impossible

user output
impossible

Test 20

Verdict: ACCEPTED

input
vlovrwpvkfbotybcmcbixsbfly 2
jutqryuhbjjqvbpaeqoyduqneybsli...

correct output
impossible

user output
impossible

Test 21

Verdict:

input
eawzhgmusltxjypkirbcfndovq 262...

correct output
a

user output
(empty)

Test 22

Verdict:

input
kqdpgnevpuyahrjclfzwsomxti 2
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk...

correct output
llllllllllllllllllllllllllllll...

user output
impossible

Test 23

Verdict: ACCEPTED

input
xwfgenquyctxdvmptcrdhvcxwq 778...

correct output
impossible

user output
impossible

Test 24

Verdict: ACCEPTED

input
sucejvkmrhtobzxglapdnifqwy 1
qddqqqqqdqqqqddddqqdqqqdqdqddq...

correct output
xttxxxxxtxxxxttttxxtxxxtxtxttx...

user output
xttxxxxxtxxxxttttxxtxxxtxtxttx...

Test 25

Verdict: ACCEPTED

input
pzukghijmcsalwnvoydxftbreu 413...

correct output
impossible

user output
impossible

Test 26

Verdict: ACCEPTED

input
adlsmbfijwmdcwglhgnvaooybu 1
aio

correct output
impossible

user output
impossible

Test 27

Verdict:

input
zqynskaxvcljewmfditourgpbh 756...

correct output
oooooooooooooooooooooooooooooo...

user output
(empty)

Test 28

Verdict:

input
truzcldhkeqspoabgyvmjwnfik 1
zz

correct output
dd

user output
impossible

Test 29

Verdict: ACCEPTED

input
upfasuzkjuwhrnajgmitgysvil 467...

correct output
impossible

user output
impossible

Test 30

Verdict: ACCEPTED

input
bemlodzqjgixuksatvyfcpnhrw 1
zdaaskooqkzzifuzspzayokihzxqhf...

correct output
gfpponeehnggktmgovgpsenkxglhxt...

user output
gfpponeehnggktmgovgpsenkxglhxt...