1861C-Queries for the Array
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; }