Advertisement
Zeinab_Hamdy

Untitled

Aug 7th, 2024
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.38 KB | None | 0 0
  1. //  #### Zeinab
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. #define nl "\n"
  5. #define fi first
  6. #define se second
  7. #define pb push_back
  8. #define ll long long
  9. #define RV return void
  10. #define sz(x) int(x.size())
  11. #define all(v) v.begin(), v.end()
  12. #define rall(v) v.rbegin(), v.rend()
  13. #define cin(v) for(auto&x:v) cin >> x;
  14. #define cout(v) for(auto&x:v) cout << x << " ";
  15.  
  16.  
  17.  
  18.  
  19. int dx[] = {-2 , -2 , 2 , 2 , 1 , 1 , -1 , -1};
  20. int dy[] = {-1 , 1 , -1 , 1 , -2 , 2 , -2 , 2};
  21.  
  22. bool valid(int i , int j){
  23.     return i >=0 and j >=0 and i < 8 and j < 8;
  24. }
  25. string s , sp;
  26.  
  27.  
  28. bool comp(string a , string b){
  29.     if(sz(a) == sz(b))
  30.         return a < b;
  31.     return sz(a) < sz(b);
  32. }
  33.  
  34.  
  35. void solve(){
  36.  
  37.    
  38.         bool ok =1;
  39.         vector < string > v;
  40.         map < string , int > mp;
  41.         int t=0;
  42.  
  43.         while(cin >> s ){
  44.  
  45.             if(s =="()"){
  46.  
  47.                 if(t > 0) cout << nl;
  48.                 t++;
  49.              
  50.                 sort(all(v) , comp);
  51.                 for(auto& x : v){
  52.                     if( mp.find(x.substr(0 , sz(x) - 1)) == mp.end()){
  53.                         ok=0;
  54.                         break;
  55.                     }
  56.                 }
  57.  
  58.                 if(!ok) {
  59.                     cout <<"not complete";
  60.                 }else{
  61.                     for(int i =0 ; i < sz(v) ; i++){
  62.                         if(i ) cout << " ";
  63.                         cout << mp[v[i]] ;
  64.                     }
  65.                 }
  66.  
  67.  
  68.                 v.clear();
  69.                 mp.clear();
  70.                 ok=1;
  71.             }
  72.             else{
  73.                 int n = sz(s);
  74.                 for(int i =0 ; i < n ; i++){
  75.                     if(s[i]=='(' ){
  76.                         int num =0;
  77.                         i++;
  78.                         while(i < n and s[i] !=',') num = num * 10 + (s[i++] -'0');
  79.                         string temp = "";
  80.                         i++;
  81.                         while(i < n and s[i] != ')') temp += s[i++];
  82.                         mp[temp]=num;
  83.                         v.pb(temp);
  84.                     }
  85.                 }
  86.             }
  87.  
  88.         }
  89.    
  90. }    
  91.  
  92.  
  93. int main(){
  94.     ios_base::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);  
  95.  
  96.     int t=1;
  97.         // cin >> t ;
  98.     for(int i=1 ; i <= t ; i++){
  99.         // cout << "Case "<< i <<": " ;
  100.         solve();
  101.     }
  102.     return 0;
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement