Submission details
Task:Decrypt
Sender:HäviöLife
Submission time:2016-09-06 18:54:07 +0300
Language:C++
Status:READY
Result:
Test results
testverdicttime
#10.14 sdetails
#2ACCEPTED0.06 sdetails
#30.05 sdetails
#40.05 sdetails
#50.13 sdetails
#60.05 sdetails
#70.06 sdetails
#8ACCEPTED0.06 sdetails
#90.05 sdetails
#100.04 sdetails
#110.16 sdetails
#120.05 sdetails
#130.05 sdetails
#14ACCEPTED0.06 sdetails
#150.15 sdetails
#160.05 sdetails
#170.14 sdetails
#180.06 sdetails
#19ACCEPTED0.06 sdetails
#20ACCEPTED0.06 sdetails
#210.16 sdetails
#220.05 sdetails
#230.15 sdetails
#240.06 sdetails
#25ACCEPTED0.05 sdetails
#26ACCEPTED0.05 sdetails
#270.14 sdetails
#280.05 sdetails
#290.15 sdetails
#300.05 sdetails

Compiler report

input/code.cpp: In function 'char applyF(char, int)':
input/code.cpp:30:14: warning: array subscript has type 'char' [-Wchar-subscripts]
         c=F[c];
              ^
input/code.cpp: In function 'int main()':
input/code.cpp:41:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0; i<f.size(); i++)
                           ^
input/code.cpp:59:30: warning: array subscript has type 'char' [-Wchar-subscripts]
                 char d=F[iter];
                              ^
input/code.cpp:62:26: warning: array subscript has type 'char' [-Wchar-subscripts]
                     d=F[d];
                          ^
input/code.cpp:79:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0; i<s.size(); i++)
                           ^
input/code.cpp:80:20: warning: array subscript has type 'char' [-Wchar-subscripts]
         if(cnt[s[i]]!=1){
                    ^
input/code.cpp:85:27: warn...

Code

#include <iostream>
#include <vector>
#include <stack>
#include <queue>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <unordered_set>
#include <stdio.h>
#include <string.h>
#include <unordered_map>
#include <fstream>
#include <set>
#include <map>

#define MOD 1000000007
#define ll long long
#define N 20000
#define float double

using namespace std;

int F[256];
int G[256];
int cnt[256];
int Ginv[256];

char applyF(char c, int n){
    for(int i=0; i<n; i++)
        c=F[c];
    return c;
}

int main(){
    string f;
    int k;
    cin>>f>>k;
    string s;
    cin>>s;

    for(int i=0; i<f.size(); i++)
        F['a' + i] = f[i];

    for(int i='a'; i<='z'; i++)
        G[i]=i;

    if(k<100){
        for(int i='a'; i<='z'; i++)
            G[i]=applyF(i, k);
    }else{
        for(int i='a'; i<='z'; i++){
            int syklialkaa;
            int syklinpituus;

            for(int alq=0; alq<30; alq++){
                char iter=applyF(i, alq);
                int maar=0;

                char d=F[iter];
                while(maar<30 && d!=iter){
                    maar++;
                    d=F[d];
                }

                if(d==iter){
                    syklialkaa=alq;
                    syklinpituus=maar;
                }
            }

            G[i]=applyF(i, syklialkaa + (k-syklialkaa)%syklinpituus);
        }
    }

    for(int i='a'; i<='z'; i++)
        cnt[G[i]]++;


    for(int i=0; i<s.size(); i++)
        if(cnt[s[i]]!=1){
            cout<<"impossible"<<endl;
            return 0;
        }
    cout<<"G[z]= "<<char(G['z'])<<endl;
    for(int i=0; i<s.size(); i++){
        for(int c='a'; c<='z'; c++){
            if(G[c]==s[i]){
                s[i]=c;
                break;
            }
        }

    }
    cout<<s<<endl;
    return 0;
}

Test details

Test 1

Verdict:

input
egkpmqujbxhiatorvznwcfynds 564...

correct output
impossible

user output
(empty)

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
G[z]= u
ggg

Test 4

Verdict:

input
wlcpatbrudxhofijgskqgevymz 1
joojjojjjoojjjjoojjojoojojoojj...

correct output
pmmppmpppmmppppmmppmpmmpmpmmpp...

user output
G[z]= z
pmmppmpppmmppppmmppmpmmpmpmmpp...

Test 5

Verdict:

input
tjyivkaulcjnehvtilatxjxmxd 300...

correct output
impossible

user output
(empty)

Test 6

Verdict:

input
tonbvkcqilfjghszxpwmdureay 2
nnv

correct output
ggx

user output
G[z]= a
ggx

Test 7

Verdict:

input
edmxaqolzisvnrfkcgwehbtjpu 179...

correct output
oooooooooooooooooooooooooooooo...

user output
G[z]= x
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqq...

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
G[z]= a
lffflflflflflfflllflflllfffffl...

Test 10

Verdict:

input
kbybextsniougrdmqpwfahzlcv 2
stlooyhhdfzpspsospvhdpedouqsyr...

correct output
vmfaayzzkgsnvnvavnwzknekaxqvyi...

user output
G[z]= h
vmfaayzzkgsnvnvavnwzknekaxqvyi...

Test 11

Verdict:

input
dugyojozcpjlwxepebzhfkqlzc 801...

correct output
impossible

user output
(empty)

Test 12

Verdict:

input
kibphqeygnmsdvawzrfcuotxjl 2
ggggggggggggggggggggggggggg

correct output
bbbbbbbbbbbbbbbbbbbbbbbbbbb

user output
G[z]= s
bbbbbbbbbbbbbbbbbbbbbbbbbbb

Test 13

Verdict:

input
pstlbyjnovmekdqzrhwxwgcfai 315...

correct output
mmm

user output
G[z]= e
mmm

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
G[z]= e
ki

Test 17

Verdict:

input
gauouzffisuxjtuufqdappivxv 205...

correct output
impossible

user output
(empty)

Test 18

Verdict:

input
ovqzprxiluehkndsmtyafbwgjc 2
oo

correct output
tt

user output
G[z]= q
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
G[z]= p
llllllllllllllllllllllllllllll...

Test 23

Verdict:

input
xwfgenquyctxdvmptcrdhvcxwq 778...

correct output
impossible

user output
(empty)

Test 24

Verdict:

input
sucejvkmrhtobzxglapdnifqwy 1
qddqqqqqdqqqqddddqqdqqqdqdqddq...

correct output
xttxxxxxtxxxxttttxxtxxxtxtxttx...

user output
G[z]= y
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
G[z]= k
dd

Test 29

Verdict:

input
upfasuzkjuwhrnajgmitgysvil 467...

correct output
impossible

user output
(empty)

Test 30

Verdict:

input
bemlodzqjgixuksatvyfcpnhrw 1
zdaaskooqkzzifuzspzayokihzxqhf...

correct output
gfpponeehnggktmgovgpsenkxglhxt...

user output
G[z]= w
gfpponeehnggktmgovgpsenkxglhxt...