比赛 20241127 评测结果 AAWWWWWWAW
题目名称 魔法药水 最终得分 30
用户昵称 孤独的氢离子 运行时间 0.165 s
代码语言 C++ 内存使用 4.85 MiB
提交时间 2024-11-27 10:27:23
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int d[1010];
struct child{
	int lc;
	int rc;
};
struct tree{
	int di;//存最低价格
	int sum;//存最低价格数
	int tai;//0表示还未遍历,1表示已经遍历过 
	child ch[10010];//ch[0].lc存分支数 
}t[1010];
int bian(int r)
{
	for(int i=1;i<=t[r].ch[0].lc;i++)
	{
		if(t[t[r].ch[i].lc].tai==0)
		{
			t[t[r].ch[i].lc].tai=1;
			bian(t[r].ch[i].lc);
		}
		if(t[t[r].ch[i].rc].tai==0)
		{
			t[t[r].ch[i].rc].tai=1;
			bian(t[r].ch[i].rc);
		}
		if(t[r].di==t[t[r].ch[i].lc].di+t[t[r].ch[i].rc].di)
		{
			t[r].sum=t[r].sum+t[t[r].ch[i].lc].sum*t[t[r].ch[i].rc].sum;
		}
		else if(t[r].di>t[t[r].ch[i].lc].di+t[t[r].ch[i].rc].di)
		{
			t[r].di=t[t[r].ch[i].lc].di+t[t[r].ch[i].rc].di;
			t[r].sum=t[t[r].ch[i].lc].sum*t[t[r].ch[i].rc].sum;
		}
	}
	return 0;
}
int main()
{
	freopen("msyrup.in","r",stdin);
	freopen("msyrup.out","w",stdout);
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>t[i].di;
		t[i].sum=1;
	}
	int na,nb,nc;
	while(cin>>na>>nb>>nc)
//	for(int i=1;i<=3;i++)   
	{
//		cin>>na>>nb>>nc;
		t[nc].ch[0].lc++;
		t[nc].ch[t[nc].ch[0].lc].lc=na;
		t[nc].ch[t[nc].ch[0].lc].rc=nb; 
	}
	bian(0);
//	for(int i=0;i<n;i++) cout<<t[i].di<<" "<<t[i].sum<<endl; 
	cout<<t[0].di<<" "<<t[0].sum;
	return 0;
}