CSES - KILO 2016 1/5 - Results
Submission details
Task:Decrypt
Sender:Pietari Kaskela
Submission time:2016-09-06 18:38:27 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.04 sdetails
#2ACCEPTED0.05 sdetails
#3ACCEPTED0.05 sdetails
#4ACCEPTED0.06 sdetails
#5ACCEPTED0.05 sdetails
#6ACCEPTED0.05 sdetails
#7ACCEPTED0.05 sdetails
#8ACCEPTED0.05 sdetails
#9ACCEPTED0.05 sdetails
#10ACCEPTED0.05 sdetails
#11ACCEPTED0.05 sdetails
#12ACCEPTED0.05 sdetails
#13ACCEPTED0.05 sdetails
#14ACCEPTED0.06 sdetails
#15ACCEPTED0.06 sdetails
#16ACCEPTED0.05 sdetails
#17ACCEPTED0.04 sdetails
#18ACCEPTED0.05 sdetails
#19ACCEPTED0.05 sdetails
#20ACCEPTED0.05 sdetails
#21ACCEPTED0.05 sdetails
#22ACCEPTED0.05 sdetails
#23ACCEPTED0.06 sdetails
#24ACCEPTED0.06 sdetails
#25ACCEPTED0.05 sdetails
#26ACCEPTED0.05 sdetails
#27ACCEPTED0.05 sdetails
#28ACCEPTED0.05 sdetails
#29ACCEPTED0.06 sdetails
#30ACCEPTED0.05 sdetails

Code

#include <bits/stdc++.h>

#define i64 long long
#define u64 unsigned long long
#define i32 int
#define u32 unsigned int

#define pii pair<int, int>
#define pll pair<long long, long long>

#define ld long double
#define defmod 1000000007

#define mati64(a,b) vector<vector<i64>>(a, vector<i64>(b, 0));
using namespace std;

char ch(int i){
	return ((char)('a'+i));
}
int hc(char a){
	return a-'a';
}
int v[26][28];
int v2[26][28];
int cc[26];
int main(){
	cin.sync_with_stdio(0);
	cin.tie(0);
	string f; int k; cin >> f >> k;
	string s; cin >> s;
	int n = s.length();

	for(int i = 0; i < 26; ++i){
		v[i][0] = f[i]-'a';
		v2[f[i]-'a'][0] = i;
		cc[f[i]-'a']++;
	}
	for(int i = 0; i < 27; ++i){
		for(int j = 0; j < 26; ++j){
			v[j][i+1] = v[v[j][i]][i];
			v2[j][i+1] = v2[v2[j][i]][i];
		}
	}
	vector<int> t(n);
	for(int i = 0; i < n; ++i)
		t[i] = hc(s[i]);
	i64 k2 = 0;
	for(i64 bi = 27; bi >= 0; --bi){
		while(k2 + (1<<bi) <= k){
			k2+=(1<<bi);
			for(int i = 0; i < n; ++i){
				if(cc[t[i]] != 1){
					cout << "impossible" << endl;
					return 0;
				}
				t[i] = v2[t[i]][bi];
			}
		}
	}
	vector<int> t2 = t;
	k2 = 0;
	for(i64 bi = 27; bi >= 0; --bi){
		while(k2 + (1<<bi) <= k){
			k2+=(1<<bi);
			for(int i = 0; i < n; ++i){
				t2[i] = v[t2[i]][bi];
			}
		}
	}
	for(int i = 0; i < n; ++i){
		if(t2[i] != hc(s[i])){
			cout << "impossible" << endl;
			return 0;
		}
	}
	string ans(n, '@');
	for(int i = 0; i < n; ++i)
		ans[i] = ch(t[i]);
	cout << ans << endl;
	return 0;
}

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: ACCEPTED

input
xtaoqlsjkezrcvinwfmbyhdgpu 872...

correct output
mmm

user output
mmm

Test 4

Verdict: ACCEPTED

input
wlcpatbrudxhofijgskqgevymz 1
joojjojjjoojjjjoojjojoojojoojj...

correct output
pmmppmpppmmppppmmppmpmmpmpmmpp...

user output
pmmppmpppmmppppmmppmpmmpmpmmpp...

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: ACCEPTED

input
edmxaqolzisvnrfkcgwehbtjpu 179...

correct output
oooooooooooooooooooooooooooooo...

user output
oooooooooooooooooooooooooooooo...

Test 8

Verdict: ACCEPTED

input
hrygatmxebcusinbdplunukuai 1
i

correct output
impossible

user output
impossible

Test 9

Verdict: ACCEPTED

input
nsuftdzbmkqepgihlyxrvwajoc 724...

correct output
offfofofofofoffooofofooofffffo...

user output
offfofofofofoffooofofooofffffo...

Test 10

Verdict: ACCEPTED

input
kbybextsniougrdmqpwfahzlcv 2
stlooyhhdfzpspsospvhdpedouqsyr...

correct output
vmfaayzzkgsnvnvavnwzknekaxqvyi...

user output
vmfaayzzkgsnvnvavnwzknekaxqvyi...

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: ACCEPTED

input
pstlbyjnovmekdqzrhwxwgcfai 315...

correct output
mmm

user output
mmm

Test 14

Verdict: ACCEPTED

input
uukjvcscfohyvqomdfdlysnuoe 2
eheeheheeheheeheeheeeehhhheehh...

correct output
impossible

user output
impossible

Test 15

Verdict: ACCEPTED

input
pkwsxbvdgmjutiyfqrzhealnoc 822...

correct output
hbkxkmhinhmwhwthbmhutgnkgoywho...

user output
hbkxkmhinhmwhwthbmhutgnkgoywho...

Test 16

Verdict: ACCEPTED

input
yqxvbohrlifmzdtwgejpcanuse 1
fl

correct output
ki

user output
ki

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: ACCEPTED

input
eawzhgmusltxjypkirbcfndovq 262...

correct output
a

user output
a

Test 22

Verdict: ACCEPTED

input
kqdpgnevpuyahrjclfzwsomxti 2
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk...

correct output
llllllllllllllllllllllllllllll...

user output
llllllllllllllllllllllllllllll...

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: ACCEPTED

input
zqynskaxvcljewmfditourgpbh 756...

correct output
oooooooooooooooooooooooooooooo...

user output
oooooooooooooooooooooooooooooo...

Test 28

Verdict: ACCEPTED

input
truzcldhkeqspoabgyvmjwnfik 1
zz

correct output
dd

user output
dd

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...