제출 #1195477

#제출 시각아이디문제언어결과실행 시간메모리
1195477GabrielHighway Tolls (IOI18_highway)C++17
0 / 100
105 ms18936 KiB
#include "highway.h"
#include "bits/stdc++.h"
using namespace std;
long long n, m, a, b;
vector< vector<long long> > Grafo;
vector<int> Consulta;
map< pair<long long, long long>, long long> Identificador;
long long DFS(long long Nodo, long long Distancia, long long Anterior){
  for(auto E: Grafo[Nodo]){
    if(E == Anterior) continue;
    Consulta[Identificador[{Nodo, E}]] = 1;
    if(ask(Consulta) > Distancia){
      Consulta[Identificador[{Nodo, E}]] = 0;
      return DFS(E, Distancia, Nodo);
    }
    Consulta[Identificador[{Nodo, E}]] = 0;
  }
  return Nodo;
}
void find_pair(int N, vector<int> U, vector<int> V, int A, int B){
  n = N, m = U.size(), a = A, b = B;
  Grafo.assign(n, {});
  Consulta.assign(m, 0);
  long long Distancia = ask(Consulta) / a;
  long long j = 0;
  for(long long i = 0; i < m; i++){
    Grafo[U[i]].push_back(V[i]);
    Grafo[V[i]].push_back(U[i]);
    Identificador[{U[i], V[i]}] = j;
    Identificador[{V[i], U[i]}] = j;
    j++;
  }
  long long r = DFS(0, Distancia, 0);
  cerr<<0<<" "<<r<<"\n";
  answer(0, r);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...