Submission #823964

#TimeUsernameProblemLanguageResultExecution timeMemory
823964KahouMeetings (JOI19_meetings)C++14
29 / 100
1657 ms1060 KiB
#include<bits/stdc++.h>
#include"meetings.h"
using namespace std;
#define F first
#define S second
#define endl '\n'
#define mk make_pair
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int MAXN = 2050;
int n, sub[MAXN];
bool mark[MAXN][MAXN];

void Solve(int N) {
        n = N;
        sub[0] = n-1;
        for (int u = 1; u < n; u++) {
                mark[0][u] = 1;
        }
        for (int u = 1; u < n; u++) {
                for (int v = u+1; v < n; v++) {
                        int lca = Query(0, u, v);
                        if (lca == u) {
                                mark[u][v] = 1;
                                sub[u]++;
                        }
                        else if (lca == v) {
                                mark[v][u] = 1;
                                sub[v]++;
                        }
                }
        }
        for (int u = 1; u < n; u++) {
                int v = 0;
                for (int w = 0; w < n; w++) {
                        if (mark[w][u] && sub[w] < sub[v]) v = w;
                }
                Bridge(min(u, v), max(u, v));
        }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...