Run ID Author Problem Lang Verdict Score Time Memory Code Length Submit Time
43314 项奕琳 初二 【J】T3 C++ Accepted 100 675 MS 18492 KB 960 2026-10-28 15:31:19

Tests(10/10):


#include <bits/stdc++.h> using namespace std; #define int long long int n,m,a[200005],b[200005],b2[200005],w[200005],x,y,ans,sum,u,cnt; vector<int> v[200005]; queue<int> q; bool check(int k){ memset(w,0,sizeof(w)); cnt=0; for (int i=1; i<=n; i++){ if (b[i]<=k){ q.push(i); w[i] = 1; } } while(!q.empty()){ u=q.front(); q.pop(); cnt ++; for (int i=0; i<v[u].size(); i++){ b[v[u][i]] -= a[u]; if (b[v[u][i]]<=k&&w[v[u][i]]==0){ q.push(v[u][i]); w[v[u][i]] = 1; } } } if (cnt==n) return 1; return 0; } signed main(){ cin >> n >> m; for (int i=1; i<=n; i++){ cin >> a[i]; sum += a[i]; } for (int i=1; i<=m; i++){ cin >> x >> y; v[x].push_back(y); v[y].push_back(x); b2[x] += a[y]; b2[y] += a[x]; } int l=0,r=sum,mid; while (l<r){ for (int i=1; i<=n; i++) b[i] = b2[i]; mid = (l+r)/2; if (check(mid)) r=mid; else l=mid+1; } cout << l; return 0; }


Judgement Protocol: