답안 #802849

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
802849 2023-08-02T15:09:39 Z radaiosm7 자매 도시 (APIO20_swap) C++11
0 / 100
2000 ms 5432 KB
#include "swap.h"
#include <bits/stdc++.h>
using namespace std;
#define X first
#define Y second
int i, n, m, ans;
int par[100005];
int dep[100005];
pair<int, pair<int, int> > edges[200005];

int find_par(int x) {
  if (par[x] == x) return x;
  par[x] = find_par(par[x]);
  return par[x];
}

bool isSame(int x, int y) {
  return (find_par(x) == find_par(y));
}

void Unite(int x, int y) {
  x = find_par(x);
  y = find_par(y);
  if (x == y) return;
  if (dep[x] < dep[y]) swap(x, y);
  if (dep[x] == dep[y]) ++dep[x];
  par[y] = x;
}

void initDSU() {
  for (int k=0; k < n; ++k) {
    par[k] = k;
    dep[k] = 0;
  }
}

void init(int N, int M, vector<int> U, vector<int> V, vector<int> W) {
  n = N;
  m = M;
  for (i=0; i < m; ++i) edges[i] = make_pair(W[i], make_pair(U[i], V[i]));
  sort(edges, edges+m);
}

int f(int a, int b, int c) {
  initDSU();

  for (int j=0; j < m; ++j) {
    if (edges[j].Y.X == c || edges[j].Y.Y == c) continue;
    Unite(edges[j].Y.X, edges[j].Y.Y);
    if (isSame(a, b)) return edges[j].X;
  }

  return INT_MAX;
}

int getMinimumFuelCapacity(int fx, int fy) {
  ans = INT_MAX;

  for (int med=0; med < n; ++med) {
    if (med == fx || med == fy) continue;
    ans = min(ans, max({f(fx, med, fy), f(fy, fx, med), f(med, fy, fx)}));
    ans = min(ans, max({f(fy, med, fx), f(fx, fy, med), f(med, fx, fy)}));
  }
  
  if (ans == INT_MAX) return -1;
  else return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 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 40 ms 212 KB Output is correct
5 Correct 163 ms 340 KB Output is correct
6 Correct 187 ms 340 KB Output is correct
7 Correct 227 ms 340 KB Output is correct
8 Correct 177 ms 340 KB Output is correct
9 Execution timed out 2077 ms 3028 KB Time limit exceeded
10 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Execution timed out 2059 ms 5432 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 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 40 ms 212 KB Output is correct
5 Correct 163 ms 340 KB Output is correct
6 Correct 187 ms 340 KB Output is correct
7 Correct 227 ms 340 KB Output is correct
8 Correct 177 ms 340 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 177 ms 340 KB Output is correct
11 Correct 227 ms 340 KB Output is correct
12 Correct 225 ms 340 KB Output is correct
13 Correct 147 ms 340 KB Output is correct
14 Correct 163 ms 340 KB Output is correct
15 Incorrect 223 ms 340 KB Output isn't correct
16 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 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 40 ms 212 KB Output is correct
6 Correct 163 ms 340 KB Output is correct
7 Correct 187 ms 340 KB Output is correct
8 Correct 227 ms 340 KB Output is correct
9 Correct 177 ms 340 KB Output is correct
10 Execution timed out 2077 ms 3028 KB Time limit exceeded
11 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 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 40 ms 212 KB Output is correct
5 Correct 163 ms 340 KB Output is correct
6 Correct 187 ms 340 KB Output is correct
7 Correct 227 ms 340 KB Output is correct
8 Correct 177 ms 340 KB Output is correct
9 Execution timed out 2077 ms 3028 KB Time limit exceeded
10 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 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 40 ms 212 KB Output is correct
6 Correct 163 ms 340 KB Output is correct
7 Correct 187 ms 340 KB Output is correct
8 Correct 227 ms 340 KB Output is correct
9 Correct 177 ms 340 KB Output is correct
10 Execution timed out 2077 ms 3028 KB Time limit exceeded
11 Halted 0 ms 0 KB -