Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int main() {
- ios::sync_with_stdio(false);
- cin.tie(0);
- string s;
- getline(cin, s);
- for (int i = 0; i < (int) s.size(); i++) {
- if ((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= 'a' && s[i] <= 'z')) {
- int decipher = s[i] - 3;
- if (s[i] >= 'a' && s[i] <= 'c') {
- int diff = 'a' - decipher - 1;
- s[i] = (char) ('z' - diff);
- } else if (s[i] >= 'A' && s[i] <= 'C') {
- int diff = 'A' - decipher - 1;
- s[i] = (char) ('Z' - diff);
- } else {
- s[i] = (char) (decipher);
- }
- }
- }
- vector<bool> visited((int) s.size(), false);
- for (int i = 0; i < (int) s.size() - 1; i++) {
- for (int j = i + 1; j < (int) s.size(); j++) {
- if (s[i] >= 'a' && s[i] <= 'z') {
- if ((s[j] < 'a' || s[j] > 'z') && (s[j] < 'A' || s[j] > 'Z')) {
- break;
- }
- }
- if ((s[i] >= 'a' && s[i] <= 'z') && (s[j] >= 'a' && s[j] <= 'z') && !visited[i] && !visited[j]) {
- visited[j] = true;
- swap(s[i], s[j]);
- break;
- } else if ((s[i] >= 'A' && s[i] <= 'Z') && (s[j] >= 'A' && s[j] <= 'Z') && !visited[i] && !visited[j]) {
- visited[j] = true;
- swap(s[i], s[j]);
- break;
- }
- }
- }
- cout << s << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement