Submission #802849

# Submission time Handle Problem Language Result Execution time Memory
802849 2023-08-02T15:09:39 Z radaiosm7 Swapping Cities (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;
}
# Verdict Execution time Memory 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 -
# Verdict Execution time Memory 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 -
# Verdict Execution time Memory 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 -
# Verdict Execution time Memory 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 -
# Verdict Execution time Memory 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 -
# Verdict Execution time Memory 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 -