Submission details
Task:Decrypt
Sender:PILIPOJAT!!
Submission time:2016-09-06 17:59:50 +0300
Language:Java
Status:READY
Result:
Test results
testverdicttime
#10.10 sdetails
#20.11 sdetails
#30.10 sdetails
#4ACCEPTED0.09 sdetails
#50.10 sdetails
#60.10 sdetails
#7ACCEPTED0.10 sdetails
#80.11 sdetails
#90.10 sdetails
#100.10 sdetails
#110.10 sdetails
#120.11 sdetails
#13ACCEPTED0.10 sdetails
#140.07 sdetails
#150.11 sdetails
#16ACCEPTED0.10 sdetails
#170.10 sdetails
#180.10 sdetails
#190.10 sdetails
#200.10 sdetails
#210.10 sdetails
#220.10 sdetails
#23ACCEPTED0.09 sdetails
#24ACCEPTED0.10 sdetails
#250.10 sdetails
#260.10 sdetails
#270.10 sdetails
#28ACCEPTED0.10 sdetails
#290.10 sdetails
#30ACCEPTED0.10 sdetails

Code

import java.io.*;

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

    //nopqrstuvwxyzabcdefghijklmn
    //tbbqvqrntbbqvqrntbbqvqrntbbqvqrntbbqvqrntbbqvqrntbbqvqrntbbqvqrntbbqvqrntbbqvqrntbbqvqrntbbqvqrntbbqvqrntbbqvqrntbbqvqrntbbqvqrn

    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();

        if(k % 2 == 0) {
            System.out.println(new String(encryptedString));
            System.exit(0);
        }

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

        for (int offset = 0; offset < encryptedString.length; offset++) {
            char c = encryptedString[offset];
            int pos = 0;
            for (char x : f) {
                if (x == c) {
                    break;
                }
                pos++;
            }
            //int pos = Arrays.binarySearch(f, c);
            if (pos > 25) {
                System.out.println("impossible");
                System.exit(0);
            }
            encryptedString[offset] = alphabet[pos];
        }
        System.out.println(new String(encryptedString));
    }

    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:

input
egkpmqujbxhiatorvznwcfynds 564...

correct output
impossible

user output
qkn

Test 2

Verdict:

input
pdabvolaobzbaaisrntdtwluwf 2
oooooooooooooooooooooooooooooo...

correct output
impossible

user output
oooooooooooooooooooooooooooooo...

Test 3

Verdict:

input
xtaoqlsjkezrcvinwfmbyhdgpu 872...

correct output
mmm

user output
aaa

Test 4

Verdict: ACCEPTED

input
wlcpatbrudxhofijgskqgevymz 1
joojjojjjoojjjjoojjojoojojoojj...

correct output
pmmppmpppmmppppmmppmpmmpmpmmpp...

user output
pmmppmpppmmppppmmppmpmmpmpmmpp...

Test 5

Verdict:

input
tjyivkaulcjnehvtilatxjxmxd 300...

correct output
impossible

user output
skuaueazduy

Test 6

Verdict:

input
tonbvkcqilfjghszxpwmdureay 2
nnv

correct output
ggx

user output
nnv

Test 7

Verdict: ACCEPTED

input
edmxaqolzisvnrfkcgwehbtjpu 179...

correct output
oooooooooooooooooooooooooooooo...

user output
oooooooooooooooooooooooooooooo...

Test 8

Verdict:

input
hrygatmxebcusinbdplunukuai 1
i

correct output
impossible

user output
n

Test 9

Verdict:

input
nsuftdzbmkqepgihlyxrvwajoc 724...

correct output
offfofofofofoffooofofooofffffo...

user output
efffefefefefeffeeefefeeefffffe...

Test 10

Verdict:

input
kbybextsniougrdmqpwfahzlcv 2
stlooyhhdfzpspsospvhdpedouqsyr...

correct output
vmfaayzzkgsnvnvavnwzknekaxqvyi...

user output
stlooyhhdfzpspsospvhdpedouqsyr...

Test 11

Verdict:

input
dugyojozcpjlwxepebzhfkqlzc 801...

correct output
impossible

user output
hw

Test 12

Verdict:

input
kibphqeygnmsdvawzrfcuotxjl 2
ggggggggggggggggggggggggggg

correct output
bbbbbbbbbbbbbbbbbbbbbbbbbbb

user output
ggggggggggggggggggggggggggg

Test 13

Verdict: ACCEPTED

input
pstlbyjnovmekdqzrhwxwgcfai 315...

correct output
mmm

user output
mmm

Test 14

Verdict:

input
uukjvcscfohyvqomdfdlysnuoe 2
eheeheheeheheeheeheeeehhhheehh...

correct output
impossible

user output
eheeheheeheheeheeheeeehhhheehh...

Test 15

Verdict:

input
pkwsxbvdgmjutiyfqrzhealnoc 822...

correct output
hbkxkmhinhmwhwthbmhutgnkgoywho...

user output
ldspsclbflciliwldclvwkfskoyilo...

Test 16

Verdict: ACCEPTED

input
yqxvbohrlifmzdtwgejpcanuse 1
fl

correct output
ki

user output
ki

Test 17

Verdict:

input
gauouzffisuxjtuufqdappivxv 205...

correct output
impossible

user output
eeeeeeeeeeeeeeeeeeeeeeeeeeeeee...

Test 18

Verdict:

input
ovqzprxiluehkndsmtyafbwgjc 2
oo

correct output
tt

user output
oo

Test 19

Verdict:

input
goqbyzivahrxnjwtdjluepsmkf 701...

correct output
impossible

user output
iiyiyiyyiyyyiyyyiyiyyyyyyiyyii...

Test 20

Verdict:

input
vlovrwpvkfbotybcmcbixsbfly 2
jutqryuhbjjqvbpaeqoyduqneybsli...

correct output
impossible

user output
jutqryuhbjjqvbpaeqoyduqneybsli...

Test 21

Verdict:

input
eawzhgmusltxjypkirbcfndovq 262...

correct output
a

user output
m

Test 22

Verdict:

input
kqdpgnevpuyahrjclfzwsomxti 2
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk...

correct output
llllllllllllllllllllllllllllll...

user output
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk...

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:

input
pzukghijmcsalwnvoydxftbreu 413...

correct output
impossible

user output
gynqhkwuiainmsrgujafkbfzwmudeb...

Test 26

Verdict:

input
adlsmbfijwmdcwglhgnvaooybu 1
aio

correct output
impossible

user output
ahv

Test 27

Verdict:

input
zqynskaxvcljewmfditourgpbh 756...

correct output
oooooooooooooooooooooooooooooo...

user output
eeeeeeeeeeeeeeeeeeeeeeeeeeeeee...

Test 28

Verdict: ACCEPTED

input
truzcldhkeqspoabgyvmjwnfik 1
zz

correct output
dd

user output
dd

Test 29

Verdict:

input
upfasuzkjuwhrnajgmitgysvil 467...

correct output
impossible

user output
hhhyyhyyhhyhyhyyhyyhhhyyhhhhyy...

Test 30

Verdict: ACCEPTED

input
bemlodzqjgixuksatvyfcpnhrw 1
zdaaskooqkzzifuzspzayokihzxqhf...

correct output
gfpponeehnggktmgovgpsenkxglhxt...

user output
gfpponeehnggktmgovgpsenkxglhxt...