后三个点WA?!?

#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
const int MOD=10007;
vector <int> e[200001];
int s[200001],w[200001];
long long int ans1,ans2;
int main(){
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n-1;i++){
        int u,v;
        scanf("%d%d",&u,&v);
        e[u].push_back(v);
        e[v].push_back(u);
    }
    for(int i=1;i<=n;i++) scanf("%d",&w[i]);
    for(int i=1;i<=n;i++){
        int m1=0,m2=0;
        for(int j=0;j<e[i].size();j++){
            int p=e[i][j];
            s[i]+=w[p];
            if(w[p]>m2){
                if(w[p]>=m1){
                    m2=m1;
                    m1=w[p];
                }
                else m2=w[p];
            }
        }
        if(m1*m2>ans1) ans1=m1*m2;
        //ans1=max(ans1,m1*m2);
    }
    for(int i=1;i<=n;i++){
        for(int j=0;j<e[i].size();j++){
            int p=e[i][j];
            ans2=(ans2+w[p]*(s[i]-w[p]))%MOD;
        }
    }
    printf("%lld %lld",ans1,ans2);
}

找不出错了。。。。。。求神犇帮助

0 条评论

目前还没有评论...

信息

ID
1906
难度
7
分类
图结构 点击显示
标签
递交数
5638
已通过
914
通过率
16%
被复制
9
上传者