这是我的代码:
#define int long long
using namespace std;
struct Edge{
int from,to;
};
vector<Edge> edges;
vector<int> G[200001];
void ins(int from,int to)
{
edges.push_back({from,to});
edges.push_back({to,from});
G[from].push_back(edges.size()-2);
G[to].push_back(edges.size()-1);
}
int w[200001];
main()
{
int n,u,v,ans1=-99999,ans2;
cin>>n;
for(int i=1;i<n;i++) cin>>u>>v,ins(u,v);
for(int i=1;i<=n;i++) cin>>w[i];
for(int i=1;i<=n;i++)
{
int sum1=0,sum2=0;//pfh,wqpfh
int max1=0,max2=0;
for(int j=0;j<G[i].size();j++)
{
Edge e=edges[G[i][j]];
sum1=(sum1+w[e.to]*w[e.to])%10007;
sum2=(sum2+w[e.to])%10007;
if(w[e.to]>max2) max2=w[e.to];
if(w[e.to]>max1) max2=max1;max1=w[e.to];
}
sum2=sum2*sum2%10007;
ans1=max(ans1,max1*max2);
ans2+=sum2-sum1;ans2%=10007;
}
cout<<ans1<<" "<<ans2<<endl;
return 0;
}
define int long long 样例错了,没有 define 就对了;
结果提交上去,define 了对一个点,没有define 就全哇??
help!