1861C-Queries for the Array
kaziamir
c_cpp
2 years ago
1.4 kB
11
Indexable
#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;
}
Editor is loading...