简单题 4 WA 1 RE 求助,样例过了
查看原帖
简单题 4 WA 1 RE 求助,样例过了
75740
LiiDP楼主2021/8/23 16:10
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

long long A[2000050];

int main()
{
    int T;
    cin >> T;
    while(T--)
    {
        memset(A, 0, sizeof(A));
        int N;
        long long M;
        cin >> N >> M;
        if(N == 1)
        {
            cout << 1 << endl;
            continue;
        }
        int k, p;
        k = p = 0;
        for(int i=1; i<=N; i++)
        {
            cin >> A[i];
            if(A[i] > A[k])
                k = i;
        }
        for(int i=1; i<=N-1; i++)
        {
            int u, v;
            cin >> u >> v;
            if(u==k)
            {
                if(A[v] > A[p] || (A[v] == A[p] && v < p))
                    p = v;
            }
            else if(v==k)
            {
                if(A[u] > A[p] || (A[u] == A[p] && u < p))
                    p = u;
            }
        }
        if(p == 0)
        {
            cout << k << endl;
            continue;
        }
        M -= (A[k] - A[p]);
        // cout << k << p << endl;
        if(M < 0)
        {
            cout << k << endl;
            continue;
        }
        if(M % 2)
            cout << max(k, p) << endl;
        else
            cout << min(k, p) << endl;
    }
    return 0;
}
2021/8/23 16:10
加载中...