记录编号 70343 评测结果 AAWAAAAAAW
题目名称 [郑州101中学] Assassin 最终得分 80
用户昵称 GravatarEzoi_XY 是否通过 未通过
代码语言 Pascal 运行时间 0.578 s
提交时间 2013-09-26 17:25:01 内存使用 17.33 MiB
显示代码纯文本
Program cog1178;
    Var
        Q,H,Ne,E:Array[1..1000010]Of Longint;
        D,X:Array[1..1000010]Of Shortint;
        T,N,M,I,J,K,S:Longint;
    Procedure Pr(A:Longint);
        Begin
            If A<>-1
                Then Writeln(A)
                Else Writeln('NO');
            Close(Input);
            Close(Output);
            Halt;
        End;
    Procedure Ins(A,B:Longint);
        Begin
            Inc(T);
            Ne[T]:=H[A];
            H[A]:=T;
            E[T]:=B;
        End;
    Procedure Bfs;
        Var
            I,L,R:Longint;
        Begin
            L:=0;
            R:=1;
            Q[1]:=1;
            While L<>R Do
                Begin
                    Inc(L);
                    I:=H[Q[L]];
                    While I<>0 Do
                        Begin
                            If X[E[I]]<>-1 Then
                                Begin
                                    If X[E[I]]=X[Q[L]] Then Pr(-1);
                                    I:=Ne[I];
                                    Continue;
                                End;
                            X[E[I]]:=X[Q[L]] Xor 1;
                            Inc(S,X[E[I]]*D[E[I]]);
                            Inc(R);
                            Q[R]:=E[I];
                            I:=Ne[I];
                        End;
                End;
        End;
    Begin
        Assign(Input,'assassin.in');
        Assign(Output,'assassin.out');
        Reset(Input);
        Rewrite(Output);
        T:=0;
        Readln(N,M);
        Filldword(H,N+1,0);
        For I:=1 To N Do Read(D[I]);
        For I:=1 To M Do
            Begin
                Readln(J,K);
                Ins(J,K);
                Ins(K,J);
            End;
        Fillchar(X,N+1,$FF);
        S:=D[1];
        X[1]:=1;
        Bfs;
        I:=S;
        Fillchar(X,N+1,$FF);
        S:=0;
        X[1]:=0;
        Bfs;
        If I<S
            Then Pr(I)
            Else Pr(S);
    End.