Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- int main()
- {
- string s;
- getline(cin, s);
- int n, m;
- cin >> n;
- if(s.size() % n)
- m = s.size() / n + 1;
- else
- m = s.size() / n;
- vector<vector <char> > v (m, vector<char>(n, ' '));
- int k(0);
- for(int i = 0; i < m; ++i)
- {
- for(int j = 0; j < n; ++j)
- {
- if(k < s.size())
- {
- v[i][j] = s[k];
- k++;
- }
- else
- break;
- }
- }
- for(int i = 0; i < v.size(); ++i)
- {
- for(int j = 0; j < n; ++j)
- cout << v[i][j];
- //cout << '\n';
- }
- cout << '\n';
- string shifr;
- cin >> shifr;
- for(int i = 0; i < m; ++i)
- {
- vector <char> v1(m);
- for(int j = 0; j < n; ++j)
- v1[j] = v[i][(shifr[j] - '0') - 1];
- for(int j = 0; j < n; ++j)
- v[i][j] = v1[j];
- }
- cout << '\n';
- for(int i = 0; i < v.size(); ++i)
- {
- for(int j = 0; j < n; ++j)
- cout << v[i][j];
- cout << '\n';
- }
- cout << '\n';
- for(int j = 0; j < n; ++j)
- {
- for(int i = 0; i < m; ++i)
- cout << v[i][j];
- //cout << '\n';
- }
- //cout << v[v.size() - 1].size();
- //cout << '\n' << v.size() << ' ' << m;
- cout << '\n';
- for(int i = 0; i < m; ++i)
- {
- vector <char> v1(m);
- for(int j = 0; j < n; ++j)
- v1[(shifr[j] - '0') - 1] = v[i][j];
- for(int j = 0; j < n; ++j)
- v[i][j] = v1[j];
- }
- cout << '\n';
- for(int i = 0; i < v.size(); ++i)
- {
- for(int j = 0; j < n; ++j)
- cout << v[i][j];
- //cout << '\n';
- }
- return 0;
- }
- /**
- Простые перестановки вносят сумятицу
- 5
- 35142
- 31254
- **/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement