제출 #727070

#제출 시각아이디문제언어결과실행 시간메모리
727070NeroZeinStranded Far From Home (BOI22_island)C++17
0 / 100
1074 ms16480 KiB
#include <bits/stdc++.h>
#define int long long 
using namespace std;

using pii = pair<int, int>;

const int N = 200005;

int a[N];
int vis[N];
vector<int> g[N];

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int n, m;
	cin >> n >> m;
	for (int i = 1; i <= n; ++i) {
		cin >> a[i];
	}
	for (int i = 0; i < m; ++i) {
		int u, v;
		cin >> u >> v;
		g[u].push_back(v);
		g[v].push_back(u); 
	}
	auto dij = [&](int src) {
		priority_queue<pii, vector<pii>, greater<pii>> que;
		que.emplace(0, src);
		int cur = 0; 
		vis[src] = true;
		while (!que.empty()) {
			auto [c, v] = que.top();
			que.pop();
			if (c > cur) {
				break; 
			}
			cur += a[v]; 
			for (int u : g[v]) {
				if (!vis[u]) {
					que.emplace(a[u], u);
					vis[u] = true;
				}
			}
		}
	};
	for (int i = 1; i <= n; ++i) {
		memset(vis, 0, sizeof vis); 
		dij(i);
		bool ok = true;
		for (int j = 1; j <= n; ++j) {
			ok &= vis[j];
		}
		cout << ok;
	}
	cout << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...