Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "bits/stdc++.h"
- //speed coding handle
- #define mp make_pair
- #define cve(tpy) for (auto i : tpy) {for(auto j : i){cout << j << " "; }cout << "\n";} ;
- #define f first
- #define s second
- #define loop(i, x, n) for (int i = x; i < n; i++)
- #define joop(x, n) for (ll j = x; j < n; j++)
- #define lp(n) for (ll i = 0; i < n; i++)
- #define err cout << "ERROR" << endl;
- #define all(x) x.begin(), x.end()
- #define pb push_back
- #define sz(x) x.size()
- #define rndm rng()
- // types
- #define pii pair<int, int>
- #define pll pair<ll, ll>
- #define vvi vector<vector<int>>
- #define vvll vector<vector<ll>>
- typedef long long ll;
- typedef long double ld;
- // types of data
- #define inf 1000000000
- #define infll 1000000000000000000
- #define INF ll(1e9)
- #define md 998244353
- #define mod 1000000007
- //#define K 239017
- #define DEBUG 1
- using namespace std;
- mt19937_64 rng(113113);
- uniform_int_distribution<ll> drist;
- //const int INF = numeric_limits<int>::max();
- void solve(){
- string s;
- cin >> s;
- char ls = s[s.size()-1];
- int lszn = -1;
- map<char, int> mp;
- int cnt = 9;
- // cout << mp['c'] << "\n";
- for(auto i : s){
- // if(i == ls ){
- // mp[i] = 0;
- // continue;
- // }
- if(i == ls and lszn == -1){
- // cout << cnt << "\n";
- lszn = cnt - (cnt % 2 == 0 ? 0 : 1);
- // cout << lszn << "\n";
- mp[i] = lszn;
- }
- if(mp[i] == 0 and lszn != 0 ){
- if(cnt == lszn){
- cnt--;
- }
- mp[i] = cnt;
- cnt--;
- }
- }
- if(cnt < -1 or lszn < 0 ){
- cout << -1;
- return;
- }
- if(s.size() == 1){
- cout << 8;
- return;
- }
- vector<int> a;
- for(auto i : s){
- a.pb(mp[i]) ;
- }
- if(a[a.size()-1] == 1){
- loop(i, 0, a.size()){
- if(a[i] == 1){
- a[i] = 2;
- }else if(a[i] == 2){
- a[i] = 1;
- }
- }
- }
- for(auto i : a){
- cout << i;
- }
- }
- int main() {
- ios::sync_with_stdio(0);
- cin.tie(0);
- int n = 1;
- // cin >> n;
- while(n--){
- solve();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment