hpnq

ccc

Oct 6th, 2024 (edited)
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.22 KB | None | 0 0
  1. #include "bits/stdc++.h"
  2. //speed coding handle
  3.  
  4. #define mp make_pair
  5. #define cve(tpy) for (auto i : tpy) {for(auto j : i){cout << j << " ";  }cout << "\n";} ;
  6. #define f first
  7. #define s second
  8. #define loop(i, x, n) for (int i = x; i < n; i++)
  9. #define joop(x, n) for (ll j = x; j < n; j++)
  10. #define lp(n) for (ll i = 0; i < n; i++)
  11. #define err cout << "ERROR" << endl;
  12. #define all(x) x.begin(), x.end()
  13. #define pb push_back
  14. #define sz(x) x.size()
  15. #define rndm rng()
  16.  
  17. // types
  18. #define pii pair<int, int>
  19. #define pll pair<ll, ll>
  20. #define vvi vector<vector<int>>
  21. #define vvll vector<vector<ll>>
  22. typedef long long ll;
  23. typedef long double ld;
  24.  
  25. // types of data
  26. #define inf 1000000000
  27. #define infll 1000000000000000000
  28. #define INF ll(1e9)
  29.  
  30. #define md 998244353
  31. #define mod 1000000007
  32. //#define K 239017
  33.  
  34. #define DEBUG 1
  35. using namespace std;
  36. mt19937_64 rng(113113);
  37. uniform_int_distribution<ll> drist;
  38. //const int INF = numeric_limits<int>::max();
  39.  
  40. void solve(){
  41.     string s;
  42.     cin >> s;
  43.     char ls = s[s.size()-1];
  44.     int lszn = -1;
  45.     map<char, int> mp;
  46.     int cnt = 9;
  47. //    cout << mp['c'] << "\n";
  48.     for(auto i : s){
  49. //        if(i == ls ){
  50. //            mp[i] = 0;
  51. //            continue;
  52. //        }
  53.         if(i == ls and lszn == -1){
  54. //            cout << cnt << "\n";
  55.             lszn = cnt - (cnt % 2 == 0 ? 0 : 1);
  56. //            cout << lszn << "\n";
  57.  
  58.             mp[i] = lszn;
  59.         }
  60.         if(mp[i] == 0 and lszn != 0 ){
  61.             if(cnt == lszn){
  62.                 cnt--;
  63.             }
  64.             mp[i] = cnt;
  65.             cnt--;
  66.         }
  67.     }
  68.     if(cnt < -1 or lszn < 0 ){
  69.         cout << -1;
  70.         return;
  71.     }
  72.     if(s.size() == 1){
  73.         cout << 8;
  74.         return;
  75.     }
  76.     vector<int> a;
  77.     for(auto i : s){
  78.  
  79.         a.pb(mp[i]) ;
  80.     }
  81.     if(a[a.size()-1] == 1){
  82.         loop(i, 0, a.size()){
  83.             if(a[i] == 1){
  84.                 a[i] = 2;
  85.             }else if(a[i] == 2){
  86.                 a[i] = 1;
  87.             }
  88.         }
  89.     }
  90.     for(auto i : a){
  91.         cout << i;
  92.     }
  93. }
  94.  
  95.  
  96. int main() {
  97.     ios::sync_with_stdio(0);
  98.     cin.tie(0);
  99.     int n = 1;
  100. //    cin >> n;
  101.     while(n--){
  102.         solve();
  103.  
  104.     }
  105.  
  106.     return 0;
  107. }
  108.  
Advertisement
Add Comment
Please, Sign In to add comment