72,求调
查看原帖
72,求调
930514
DIDI1234楼主2024/10/24 14:03
#include <bits/stdc++.h>
using namespace std;
int m,q,len,sec,pc=-1,dz;
string s;
map<int,int> mp; 
void rc(){
    set<int> st;
    for(int i=0;i<len;i++){
        if(s[i]=='?')st.insert(i);
        else if(s[i]==':'){
        	mp[*st.rbegin()]=i;
            st.erase(*st.rbegin());
        }
    }
}
int ck,num;
bool jxs(int l,int r){
	ck=1;
	num=0;
	while(!(s[r]=='>' || s[r]=='<')){
		num+=ck*(s[r]-'0');
		ck*=10;
		r--;
	}
	if(s[r]=='>')return dz>num;
	else return dz<num;
}
string wq(int l,int r){
	int tw;
	for(int i=l;i<r;i++){
		if(s[i]=='?'){
			if(jxs(l,i-1))return wq(i+1,mp[i]-1);
			else return wq(mp[i]+1,r);
		}
	}
	return s.substr(l,r-l+1);
}
int main(){
    //freopen("medal.in", "r", stdin);
    //freopen("medal.out", "w", stdout);
    cin>>m>>q>>s;
    len=s.size();
    rc();
    for(int i=0;i<q;i++){
    	cin>>dz;
    	cout<<wq(0,s.size()-1)<<'\n';
	}
    return 0;
}
2024/10/24 14:03
加载中...