1861C-Queries for the Array

 avatarkaziamir
c_cpp
24 days ago
1.4 kB
1
Indexable
Never
#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define yes cout<<"yes"<<endl
#define no cout<<"no"<<endl
#define YES cout<<"YES"<<endl
#define NO cout<<"NO"<<endl
int sorted(vector<int> arr){
    int asc = 1;
    if(arr.size()<2){
        asc = 1;
    }
    else{
        for(int i=1;i<arr.size();i++){
           if(arr[i]<arr[i-1]){
              asc = 0;
              break;
          }
        }
    }
    return asc;
}
void solution(){
	string s;
    cin>>s;
    int y = 1;
    vector<int> arr;
    int n = 5;
    for(int i=0;i<s.size();i++){
        if(s[i]=='-'){
            if(s[i+1]=='1' || s[i+1]=='+' || arr[i+1]=='-'){
                arr.pop_back();
            }
            else if(arr[i+1]=='0'){
                
                arr.pop_back();
                int x = arr.size();
                arr[x-1] = 1;
            }
        }
        else if(s[i]=='1'){
            if(!sorted(arr)){
                y = 0;
                break;
            }
        }
        else if(s[i]=='0'){
            if(sorted(arr)){
                y = 0;
                break;
            }
        }
        else if(s[i]=='+'){
            if(s[i+1]=='0'){
                arr.push_back(1);
            }
            else{
                arr.push_back(n);
            }
        }
    }
    y==1? YES:NO;
}

int main(){
	
	int test;
	cin>>test;
	while(test--){
		solution();
	}
	return 0;
}