Решение задачи "Право-левое шифрование" с Codeforces

Без пояснения   Просмотров: 9


Поликарп обожает шифры. Недавно он изобрёл свой собственный, который назвал право-левым.

Право-левое шифрование используется для шифрования строк. Чтобы зашифровать строку s=s1s2…sn Поликарп выполняет следующие шаги:

он выписывает s1,
к текущему результату приписывает справа s2,
к текущему результату приписывает слева s3,
к текущему результату приписывает справа s4,
к текущему результату приписывает слева s5,
и так далее, пока не будут обработаны все символы строки.
Например, если s="techno", то процесс шифрования будет выглядеть так: "t" → "te" → "cte" → "cteh" → "ncteh" → "ncteho". Таким образом, для s="techno" результат шифрования равен "ncteho".

Дана строка t — результат шифрования некоторой строки s. Ваша задача расшифровать, то есть найти строку s.

Код

#include<bits/stdc++.h>
#define int64 long long
using namespace std;
char s[110];
string st;
int main(){
	scanf("%s",s);
	int l = strlen(s);
	for(int i = 0,j = l - 1, t = l & 1; i <= j; t ^= 1)
		if(t)
            st += s[i++];
        else 
            st += s[j--];
	reverse(st.begin(),st.end());
	cout << st << endl;
	return 0;
}

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться