Goga21

Untitled

Mar 8th, 2025
341
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.36 KB | Source Code | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6.     string zoo;
  7.     cin >> zoo;
  8.     int cnt = 1, cnt2 = 1;
  9.  
  10.     map<int, int> answer;
  11.     stack<pair<char, int>> v;
  12.     vector<int> idx(zoo.length()), ans;
  13.  
  14.     for(int i = 0; i < zoo.length(); ++i){
  15.         if(zoo[i] >= 'a' && zoo[i] <= 'z'){
  16.             idx[i] = cnt;
  17.             cnt++;
  18.         }else{
  19.             idx[i] = cnt2;
  20.             cnt2++;
  21.         }
  22.     }
  23.  
  24.     for(int i = 0; i < zoo.length(); ++i){
  25.         if(v.empty()){
  26.             v.push({zoo[i], idx[i]});
  27.  
  28.         }else if(v.top().first - 'a' == zoo[i] - 'A'){
  29.             if(v.top().first >= 'A' && v.top().first <= 'Z'){
  30.                 answer[v.top().second] = idx[i];
  31.             }else{
  32.                 answer[idx[i]] = v.top().second;
  33.             }
  34.  
  35.             v.pop();
  36.         }else if (v.top().first - 'A' == zoo[i] - 'a'){
  37.             if(v.top().first >= 'A' && v.top().first <= 'Z'){
  38.                 answer[v.top().second] = idx[i];
  39.             }else{
  40.                 answer[idx[i]] = v.top().second;
  41.             }
  42.  
  43.             v.pop();
  44.         }else{
  45.             v.push({zoo[i], idx[i]});
  46.         }
  47.     }
  48.  
  49.     if(v.empty()){
  50.         cout << "Possible\n";
  51.         for(auto el : answer){
  52.             cout << el.second << ' ';
  53.         }
  54.     }else{
  55.         cout << "Impossible\n";
  56.     }
  57.  
  58. }
Advertisement
Add Comment
Please, Sign In to add comment