답안 #702497

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
702497 2023-02-24T08:08:34 Z Chal1shkan Sjekira (COCI20_sjekira) C++14
40 / 110
55 ms 10992 KB
# include <bits/stdc++.h>

# define pb push_back
# define ff first
# define ss second
# define nl "\n"
# define sz(x) ((int)(x).size())
# define deb(x) cerr << #x  << " = " << x << endl; 

typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;

const ll maxn = 1e5 + 25;
const ll inf = 1e18 + 0;
const ll mod = 998244353;
const ll dx[] = {-1, 1, 0, 0};
const ll dy[] = {0, 0, -1, 1};

using namespace std;

ll n, a[maxn];
vector <ll> g[maxn];
ll ord[maxn];
ll q[maxn];

bool cmp (ll x, ll y)
{
	return (a[x] < a[y]);
}

struct DSU
{
	ll par[maxn];
	DSU ()
	{
		iota(par, par + maxn, 0);	
	}	
	ll find_set (ll v)
	{
		if (v == par[v]) return v;
		return v = find_set(par[v]);
	}
	void unite (ll u, ll v)
	{
		u = find_set(u);
		v = find_set(v);
		if (u != v)
		{
			par[v] = u;
			a[u] = max(a[u], a[v]);
		}
	}
} dsu;

void ma1n (/* SABR */)
{
	cin >> n;
	for (ll i = 1; i <= n; ++i)
	{
		cin >> a[i];
		q[i] = a[i];
		ord[i] = i;
	}
	for (ll i = 1; i < n; ++i)
	{
		ll u, v;
		cin >> u >> v;
		g[u].pb(v);
		g[v].pb(u);
	}
	sort(ord + 1, ord + 1 + n, cmp);
	ll ans = 0;
	for (ll i = 1; i <= n; ++i)
	{
		ll v = ord[i];
		ll w = a[i];
		for (ll to : g[v])
		{
			if (q[v] > q[to])
			{
				v = dsu.find_set(v);
				to = dsu.find_set(to);
				ans += a[v] + a[to];
				dsu.unite(v, to);
			}
		}
	}
	cout << ans;
}       

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
//    freopen("angry.in", "r", stdin);
//    freopen("angry.out", "w", stdout);
    int ttt = 1;
//  cin >> ttt;
    for (int test = 1; test <= ttt; ++test)
    {
//      cout << "Case " << test << ":" << ' ';
        ma1n();
    }
    return 0;
}

Compilation message

sjekira.cpp: In function 'void ma1n()':
sjekira.cpp:77:6: warning: unused variable 'w' [-Wunused-variable]
   77 |   ll w = a[i];
      |      ^
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 3412 KB Output is correct
2 Correct 2 ms 3412 KB Output is correct
3 Correct 2 ms 3412 KB Output is correct
4 Correct 2 ms 3468 KB Output is correct
5 Correct 2 ms 3412 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 50 ms 9628 KB Output is correct
2 Correct 33 ms 8148 KB Output is correct
3 Correct 31 ms 7884 KB Output is correct
4 Correct 36 ms 8412 KB Output is correct
5 Correct 55 ms 10976 KB Output is correct
6 Incorrect 42 ms 10992 KB Output isn't correct
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 3412 KB Output is correct
2 Correct 2 ms 3412 KB Output is correct
3 Correct 2 ms 3412 KB Output is correct
4 Correct 2 ms 3468 KB Output is correct
5 Correct 2 ms 3412 KB Output is correct
6 Correct 3 ms 3540 KB Output is correct
7 Correct 2 ms 3540 KB Output is correct
8 Correct 2 ms 3412 KB Output is correct
9 Correct 2 ms 3508 KB Output is correct
10 Correct 3 ms 3540 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 3412 KB Output is correct
2 Correct 2 ms 3412 KB Output is correct
3 Correct 2 ms 3412 KB Output is correct
4 Correct 2 ms 3468 KB Output is correct
5 Correct 2 ms 3412 KB Output is correct
6 Correct 50 ms 9628 KB Output is correct
7 Correct 33 ms 8148 KB Output is correct
8 Correct 31 ms 7884 KB Output is correct
9 Correct 36 ms 8412 KB Output is correct
10 Correct 55 ms 10976 KB Output is correct
11 Incorrect 42 ms 10992 KB Output isn't correct
12 Halted 0 ms 0 KB -