답안 #674712

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
674712 2022-12-26T00:36:00 Z Vahe 자매 도시 (APIO20_swap) C++17
7 / 100
2000 ms 9240 KB
#include "swap.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <climits>
using namespace std;
int n, m;
vector<int> u_, v_, w, ver, var, par, P, p, her, sizes;

int get(int u)
{
    if (u == par[u]) return u;
    return get(par[u]);
}

void union_chains(int u, int v, int w)
{
    int a = get(u), b = get(v);
    if (a == b)
    {
        P[a] = min(P[a], w);
        return;
    }
    if (sizes[a] < sizes[b]) swap(a, b), swap(u, v);
    sizes[a] += sizes[b];
    par[v] = u;
    her[v] = w;
    if (u == ver[a] && v == ver[b]) ver[a] = var[b];
    else if (u == ver[a] && v == var[b]) ver[a] = ver[b];
    else if (u == var[a] && v == ver[b]) var[a] = var[b];
    else if (u == var[a] && v == var[b]) var[a] = ver[b];
    else ver[a] = -1, var[a] = -1, P[a] = min(P[a], w);
}

int go(int u, int w)
{
    if (par[u] == u || her[u] > w) return u;
    return go(par[u], w);
}

void init(int N, int M, vector<int> U, vector<int> V, vector<int> W) {
    n = N, m = M;
    vector<pair<int, pair<int, int>>> kox;
    for (int i = 0; i < m; i++) kox.push_back({ W[i], {U[i], V[i]} });
    sort(kox.begin(), kox.end());
    ver = var = par = sizes = P = her = p = vector<int>(n);
    for (int i = 0; i < n; i++) ver[i] = var[i] = par[i] = p[i] = i, sizes[i] = 1, her[i] = P[i] = INT_MAX;
    for (int i = 0; i < m; i++)
    {
        int u = kox[i].second.first, v = kox[i].second.second;
        union_chains(u, v, kox[i].first);
    }
    //for (int i = 0; i < n; i++)
    //{
    //    cout << i << ' ' << par[i] << endl;
    //}
}

int getMinimumFuelCapacity(int X, int Y) {
    long long l = 0, r = 2e9;
    while (l + 1 < r)
    {
        int mij = l + (r - l) / 2;
        int a = go(X, mij), b = go(Y, mij);
        if (a == b && P[get(a)] <= mij) r = mij;
        else l = mij;
    }
    return r == 2e9 ? -1 : r;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 2 ms 340 KB Output is correct
9 Correct 34 ms 5584 KB Output is correct
10 Correct 42 ms 6664 KB Output is correct
11 Correct 41 ms 6592 KB Output is correct
12 Correct 45 ms 6988 KB Output is correct
13 Execution timed out 2055 ms 6872 KB Time limit exceeded
14 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 134 ms 8844 KB Output is correct
4 Correct 131 ms 9040 KB Output is correct
5 Correct 142 ms 9240 KB Output is correct
6 Correct 133 ms 8812 KB Output is correct
7 Correct 137 ms 9052 KB Output is correct
8 Correct 133 ms 8872 KB Output is correct
9 Correct 136 ms 9028 KB Output is correct
10 Correct 137 ms 8944 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 2 ms 340 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Incorrect 1 ms 340 KB Output isn't correct
11 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 2 ms 340 KB Output is correct
10 Correct 34 ms 5584 KB Output is correct
11 Correct 42 ms 6664 KB Output is correct
12 Correct 41 ms 6592 KB Output is correct
13 Correct 45 ms 6988 KB Output is correct
14 Execution timed out 2055 ms 6872 KB Time limit exceeded
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 2 ms 340 KB Output is correct
9 Correct 34 ms 5584 KB Output is correct
10 Correct 42 ms 6664 KB Output is correct
11 Correct 41 ms 6592 KB Output is correct
12 Correct 45 ms 6988 KB Output is correct
13 Execution timed out 2055 ms 6872 KB Time limit exceeded
14 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 2 ms 340 KB Output is correct
10 Correct 34 ms 5584 KB Output is correct
11 Correct 42 ms 6664 KB Output is correct
12 Correct 41 ms 6592 KB Output is correct
13 Correct 45 ms 6988 KB Output is correct
14 Execution timed out 2055 ms 6872 KB Time limit exceeded
15 Halted 0 ms 0 KB -