tygarian

shuffled anagrams kickstart round e

Aug 29th, 2021
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define endl "\n"
  5. #define FIO ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
  6. #define ll long long
  7. #define vi vector<ll>
  8. #define pb push_back
  9. #define F first
  10. #define S second
  11. #define all(v) (v).begin(),(v).end()
  12. #define pii pair<ll,ll>
  13. #define vii vector<pii>
  14. #define calc_fact(n) tgamma(n+1)
  15. #define inf LONG_LONG_MAX
  16. #define MOD 1000000007
  17. #define mod 998244353
  18.  
  19. string solve()
  20. {
  21. string s;
  22. cin>>s;
  23. ll n = s.length();
  24. vi freq(26);
  25. for(auto c:s){
  26. freq[c-'a']++;
  27. if(freq[c-'a']*2>n){
  28. return "IMPOSSIBLE";
  29. }
  30. }
  31. vector<pair<char,ll>> now;
  32. for(ll i=0;i<n;i++){
  33. now.pb({s[i],i});
  34. }
  35. sort(all(now));
  36. string ans(n,'a');
  37. for(ll i=0;i<n;i++){
  38. ll ind = (i + n / 2)%n;
  39. ans[now[i].second] = now[ind].first;
  40. }
  41. return ans;
  42. }
  43.  
  44. signed main()
  45. {
  46. FIO;
  47.  
  48. ll t;
  49. cin>>t;
  50. for(ll i=1;i<=t;i++)
  51. {
  52. cout<<"Case #"<<i<<": ";
  53.  
  54. cout<<solve()<<endl;
  55. }
  56.  
  57. }
Add Comment
Please, Sign In to add comment