本人刚接触算法不久,凭感觉写的,MLE,dalao求条
#include<bits/stdc++.h>
using namespace std;
long long x;
long long work1(string str){
int v=0;
stringstream ss;
ss<<str;
ss>>v;
return v;
}
long long ans(string str){
long long w,i,value;
bool cheak=false;
for(i=0;i<str.size();i++){
if(str[i]=='>') cheak=true;
else if(str[i]=='<') cheak=false;
if(str[i]=='?'){
value=work1(str.substr(2,i-2));
w=i;
break;
}
}
if(i==str.size()) return work1(str);
long long suma=1,sumb=0;
for(i=w+1;i<str.size();i++){
if(str[i]=='?') suma++;
else if(str[i]==':') sumb++;
if(sumb==suma){
if(cheak==true){
long long va=ans(str.substr(w+1,i-w-1)),vb=ans(str.substr(i+1,str.size()-i));
if(x>value) return va;
else return vb;
}
else{
long long va=ans(str.substr(w+1,i-w-1)),vb=ans(str.substr(i+1,str.size()-i));
if(x<value) return va;
else return vb;
}
}
}
}
int main()
{
long long m,q;
string st;
cin>>m>>q>>st;
while(q--){
cin>>x;
cout<<ans(st)<<endl;
}
}