Submission #403442

# Submission time Handle Problem Language Result Execution time Memory
403442 2021-05-13T07:41:49 Z Wasrek Swapping Cities (APIO20_swap) C++14
7 / 100
139 ms 11996 KB
#include<bits/stdc++.h>
#include "swap.h"
// #include"grader.cpp"
#include <vector>
#define SIZE 100010
#define MAX 2000000000
using namespace std;
struct A{
  int u,w;
};
int n;
A m1={MAX,MAX},m2={MAX,MAX},m3={MAX,MAX};
vector<A> g[SIZE];

void init(int N, int M, std::vector<int> U, std::vector<int> V, std::vector<int> W) {
    n=N;
    for(int i=0;i<M;i++){
      g[U[i]].push_back({V[i],W[i]});
      g[V[i]].push_back({U[i],W[i]});
      if(W[i]<m1.w){
        m3=m2,m2=m1,m1={V[i],W[i]};
      }else if(W[i]<m2.w){
        m3=m2,m2={V[i],W[i]};
      }else if(W[i]<m3.w){
        m3={V[i],W[i]};
      }
    }
    // printf("%d %d\n%d %d\n%d %d\n",m1.u,m1.w,m2.u,m2.w,m3.u,m3.w);
    return ;
}

int getMinimumFuelCapacity(int X, int Y) {
  //min path ที่มี node อยู่ระหว่าง path
  //หา min ถนนที่เชื่อมกับโหนดตรงกลาง
  //เทียบ min กับ path อื่นๆ ไปได้ (เชื่อมตรงเลยก็ได้)
  if(n<=3) return -1;
  if(X!=0 && Y!=0){
    if(X!=m1.u && Y!=m1.u){
      return max(g[X][0].w,max(g[Y][0].w,m1.w));
    }else if(X!=m2.u && Y!=m2.u){
      return max(g[X][0].w,max(g[Y][0].w,m2.w));
    }else if(X!=m3.u && Y!=m3.u){
      return max(g[X][0].w,max(g[Y][0].w,m3.w));
    }
  }else{
    if(Y==0) swap(X,Y);
    //X==0
    if(Y==m1.u || Y==m2.u || Y==m3.u){
      return m3.w;
    }else{
      return max(g[Y][0].w,m2.w);
    }
  }
  return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2636 KB Output is correct
2 Correct 2 ms 2636 KB Output is correct
3 Correct 2 ms 2636 KB Output is correct
4 Incorrect 2 ms 2636 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2636 KB Output is correct
2 Correct 2 ms 2636 KB Output is correct
3 Correct 116 ms 11664 KB Output is correct
4 Correct 118 ms 11808 KB Output is correct
5 Correct 121 ms 11932 KB Output is correct
6 Correct 115 ms 11840 KB Output is correct
7 Correct 122 ms 11996 KB Output is correct
8 Correct 114 ms 11712 KB Output is correct
9 Correct 113 ms 11736 KB Output is correct
10 Correct 139 ms 11684 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2636 KB Output is correct
2 Correct 2 ms 2636 KB Output is correct
3 Correct 2 ms 2636 KB Output is correct
4 Incorrect 2 ms 2636 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2636 KB Output is correct
2 Correct 2 ms 2636 KB Output is correct
3 Correct 2 ms 2636 KB Output is correct
4 Incorrect 2 ms 2636 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2636 KB Output is correct
2 Correct 2 ms 2636 KB Output is correct
3 Correct 2 ms 2636 KB Output is correct
4 Incorrect 2 ms 2636 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2636 KB Output is correct
2 Correct 2 ms 2636 KB Output is correct
3 Correct 2 ms 2636 KB Output is correct
4 Incorrect 2 ms 2636 KB Output isn't correct
5 Halted 0 ms 0 KB -