ProgMe

Untitled

Nov 28th, 2020
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int k;
  6. string s;
  7. map<int, int> cnt;
  8. vector<vector<char>> de_use;
  9.  
  10. int32_t main()
  11. {
  12. cin >> k;
  13. de_use.resize(k + 1);
  14. getchar();
  15. getline(cin, s);
  16. int now = (int)s.size() - 1;
  17. cnt[1] ++;
  18. while(now > 0)
  19. {
  20. for(int i = 2; i <= k; i++)
  21. if(now-- > 0)
  22. cnt[i] ++;
  23. for(int i = k - 1; i > 0; i --)
  24. if(now-- > 0)
  25. cnt[i]++;
  26. }
  27. now = 0;
  28. for(int i = 1; i <= k; i++)
  29. {
  30. int new_ind = now + cnt[i];
  31. while(now != new_ind)
  32. de_use[i].push_back(s[now++]);
  33. }
  34. for(int i = 1; i <= k; i++)
  35. reverse(de_use[i].begin(), de_use[i].end());
  36. cout << de_use[1][--cnt[1]];
  37. de_use[1].pop_back();
  38. bool can = true;
  39. while(can)
  40. {
  41. for(int i = 2; i <= k; i++)
  42. {
  43. if(!de_use[i].empty())
  44. {
  45. cout << de_use[i][--cnt[i]];
  46. de_use[i].pop_back();
  47. }
  48. else
  49. can = false;
  50. }
  51. for(int i = k - 1; i > 0; i--)
  52. {
  53. if(!de_use[i].empty())
  54. {
  55. cout << de_use[i][--cnt[i]];
  56. de_use[i].pop_back();
  57. }
  58. else
  59. can = false;
  60. }
  61. }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment