QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#757900#9623. 合成大西瓜zzfs#WA 3ms12176kbC++171.4kb2024-11-17 14:26:252024-11-17 14:26:28

Judging History

你现在查看的是最新测评结果

  • [2024-11-17 14:26:28]
  • 评测
  • 测评结果:WA
  • 用时:3ms
  • 内存:12176kb
  • [2024-11-17 14:26:25]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define max_len 100010
struct node
{
    int val;
    list<int> linked;
    multiset<int> val_near;
} node_arr[max_len];

// val, ind
pair<int, int> val_node[max_len];

void link(int u, int v)
{
    node_arr[u].linked.push_back(v);
    node_arr[v].linked.push_back(u);
    node_arr[u].val_near.insert(node_arr[v].val);
    node_arr[v].val_near.insert(node_arr[u].val);
}

void sol()
{
    int n, m;
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        cin >> node_arr[i].val;
        val_node[i - 1] = make_pair(node_arr[i].val, i);
    }
    for (int i = 0; i < m; i++)
    {
        int u, v;
        cin >> u >> v;
        link(u, v);
    }
    if(n == 1)
    {
        cout << node_arr[1].val << "\n";
        return;
    }
    sort(val_node, val_node + n, greater());
    int ans = 0;
    for (int i = 0; i < n; i++)
    {
        auto [val, ind] = val_node[i];
        if(node_arr[ind].linked.size() == 1)
        {
            int ni = *node_arr[ind].linked.begin();
            auto iter = node_arr[ind].val_near.end()--;
            int at = *iter;
            iter--, at += *iter;
            ans = max(at, ans);
        }
        else
        {
            ans = max(ans, node_arr[ind].val);
            break;
        }
    }
    cout << ans << endl;
    
}
int main()
{
    sol();
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 3ms
memory: 12176kb

input:

7 9
1 4 1 3 3 6 7
5 4
3 6
3 4
2 3
5 2
2 6
6 7
5 1
4 6

output:

7

result:

wrong answer 1st lines differ - expected: '6', found: '7'