답안 #727071

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
727071 2023-04-20T02:56:53 Z NeroZein Stranded Far From Home (BOI22_island) C++17
0 / 100
99 ms 37724 KB
#include <bits/stdc++.h>
#define int long long 
using namespace std;
 
struct edge {
	int u, v, val;
	bool operator <(const edge& y) {
		return val < y.val; 
	}
};
 
const int N = 200005;
 
int rt;
int a[N];
edge e[N]; 
bool can[N];
vector<int> g[N]; 
 
int p[N], sz[N];
 
int get (int v) {
	return p[v] = (p[v] == v ? v : get(p[v]));
}
 
void uni (int u, int v) {
	int pu = get(u), pv = get(v);
	if (pu == pv) return; 
	rt++;
	p[rt] = p[u] = p[v] = rt;
	//cout << " ps: " << pu << ' ' << pv << '\n';
	a[rt] = a[pu] + a[pv];
	//cout << " as : " << a[pu] << ' ' << a[pv] << '\n';
	if (a[u] <= a[pv]) {
		//cout << " u : " << u << ' ' << v << '\n';
		g[rt].push_back(pv);
	}
	if (a[v] <= a[pu]) {
		//cout << " v : " << v << ' ' << u << '\n'; 
		g[rt].push_back(pu); 
	}
	//cout << '\n';
}
 
void Dfs (int v) {
	if (g[v].empty()) {
		can[v] = true; 
	}
	for (int u : g[v]) {
		Dfs(u); 
	}
}
 
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];
		p[i] = i;
		sz[i] = 1;
	}
	for (int i = 0; i < m; ++i) {
		cin >> e[i].u >> e[i].v;
		e[i].val = max(a[e[i].u], a[e[i].v]);
	}
	sort(e, e + m); 
	rt = n;
	for (int i = 0; i < m; ++i) {
		//cout << " e: " << e[i].u << ' ' << e[i].v << '\n';
		uni(e[i].u, e[i].v); 
	}
	Dfs(rt); 
	for (int i = 1; i <= n; ++i) {
		cout << can[i];
	}
	cout << '\n';
}
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 4948 KB Output is correct
2 Correct 2 ms 4948 KB Output is correct
3 Correct 3 ms 4948 KB Output is correct
4 Incorrect 4 ms 5204 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 4948 KB Output is correct
2 Correct 2 ms 4948 KB Output is correct
3 Runtime error 99 ms 37724 KB Execution killed with signal 11
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Runtime error 92 ms 28972 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 4948 KB Output is correct
2 Runtime error 77 ms 29112 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 4948 KB Output is correct
2 Correct 2 ms 4948 KB Output is correct
3 Correct 3 ms 4948 KB Output is correct
4 Incorrect 4 ms 5204 KB Output isn't correct
5 Halted 0 ms 0 KB -