| 记录编号 | 
        598224 | 
        评测结果 | 
        AATAAAAAAA | 
    
    
        | 题目名称 | 
        1673.表达式树 | 
        最终得分 | 
        90 | 
            
    
    
        | 用户昵称 | 
         TeaWine | 
        是否通过 | 
        未通过 | 
    
    
        | 代码语言 | 
        C++ | 
        运行时间 | 
        2.025 s  | 
    
    
        | 提交时间 | 
        2025-01-22 17:26:31 | 
        内存使用 | 
        3.28 MiB  | 
        
    
    
    
    		显示代码纯文本
		
		#include<bits/stdc++.h>
using namespace std;
int p=-114514;
struct er {
    char y;
    
    int l,r;
};
er b[186];
int n,a[186],num;
int yn(char y,int a,int b){
    if(y=='+'){
        return a+b;
    }
    if(y=='-'){
        return a-b;
    }
    if(y=='*'){
        return a*b;
    }
    if(y=='/'){
        return a/b;
    }
}
int main () {
    
    freopen("expr_tree.in","r",stdin);
    freopen("expr_tree.out","w",stdout);
    
    cin>>n;
    for(int i = 1; i<=2*n; i++)a[i]=p;
    for(int i = 1; i<=n; i++){
        cin>>a[i];
    }
    
    for(int i = 1; i<n; i++){
        cin>>b[i].y>>b[i].l>>b[i].r;
    } 
    int tp=n-1,i=1;
    while(tp){
        while(b[i].y=='0')i=(i+1)%(n-1)+1;
        if(a[b[i].l]!=p&&a[b[i].r]!=p) {
            a[n+i]=yn(b[i].y,a[b[i].l],a[b[i].r]);
            tp--;
            b[i].y='0';
            if(tp==0)num=a[n+i];
        }
        i=(i+1)%(n-1)+1;
        
    }
    cout<<num;
    
    return 0;
}